2012-09-13 20 views
11

Vì vậy, sau rất nhiều nghiên cứu, tôi bắt đầu tăng cường ngăn xếp máy chủ dịch vụ của chúng tôi với một điểm nhập webAPI. Dựa trên this thread và đặc biệt là bài đăng cuối cùng của một thành viên của hội đồng quản trị Digerati, chúng tôi đang triển khai các dịch vụ webAPI như một mặt tiền vào lớp ứng dụng WCF của chúng tôi. (Dịch vụ WCF của chúng tôi chỉ là mặt tiền vào lớp Ứng dụng của chúng tôi, nơi tất cả các hành vi sống)Các tệp tối thiểu cần thiết để triển khai máy chủ webAPI

Câu hỏi của tôi là như vậy. Tôi đã tải về MVC 4 và tạo một dự án WebAPI mới trong giải pháp dịch vụ của mình. Nhưng wow có một đống crap được tạo ra trong dự án của tôi mà tôi sẽ không cần! Ví dụ: tất cả các tệp hình ảnh, bộ điều khiển chính, chế độ xem và mô hình, v.v.

Vì vậy, để loại bỏ điều này xuống chỉ là một dự án dịch vụ, các tệp tối thiểu tôi cần để xây dựng một dự án dịch vụ chức năng là gì? Mục đích của chúng tôi là xuất bản cả hai loại dịch vụ (WCF và webAPI) cạnh nhau trong cùng một máy chủ .. mỗi cuộc gọi dịch vụ thực hiện cùng một cuộc gọi dịch vụ giống hệt nhau và trả về DTO cụ thể cho yêu cầu. Cho đến nay nó trông giống như App_Start, Controllers, và các mục Glabal.asax/web.config. Tôi chắc chắn không cần Views, Models, hoặc Images !!!

Mọi thông tin đầu vào về những gì người khác đã thực hiện để triển khai dịch vụ thuần túy sẽ được chào đón tuyệt vời tại đây.

Trả lời

18

Cùng một vấn đề ở đây. Tôi đã tìm thấy rằng article từ Shawn Kendrot giải thích cách tạo dự án API Web tối thiểu. Nó được viết cho phiên bản beta của Web API nhưng nó có vẻ vẫn còn hợp lệ.

  1. Tạo dự án ASP.NET trống.
  2. Thêm một tham chiếu đến System.Web.HttpSystem.Web.Http.WebHost (phiên bản 4.0.0.0)
  3. Thêm một tập tin Global.asax
  4. Đăng ký một tuyến đường trong Global.Application_Start. Một cái gì đó như:

    protected void Application_Start(object sender, EventArgs e) 
    { 
        GlobalConfiguration.Configuration.Routes.MapHttpRoute(
         name: "DefaultApi", 
         routeTemplate: "api/{controller}/{id}", 
         defaults: new { id = RouteParameter.Optional }); 
    } 
    
  5. Thêm một bộ điều khiển

    public class SampleController : ApiController 
    { 
        public string Get(int id) 
        { 
        return "Hello"; 
        } 
    } 
    
    1. Run dự án tại địa phương với URL /api/sample/123 và tận hưởng kết quả:

enter image description here

+5

1 Điều này thực sự có thể trong ngưỡng trong các tài liệu chính thức! –

+1

LOL có bỏ một chút mà nên được trong documenation chính thức. +1 nhận xét của bạn. :) –

3

FYI. Tôi đã phát hiện ra rằng tôi đã phải tham khảo thêm hai dlls:

  • System.Net.Http
  • Newtonsoft.Json