2015-05-01 20 views
5

Tôi đang xây dựng một dịch vụ Web API 2 tự lưu trữ OWIN. Tôi cần dịch vụ này để lộ điểm kết thúc OData.Cách định cấu hình điểm kết thúc OData trong ứng dụng API Web tự lưu trữ

Phương pháp IIS chủ trì truyền thống liên quan đến App_Start/WebApiConfig.cs:

using ProductService.Models; 
using System.Web.OData.Builder; 
using System.Web.OData.Extensions; 

public static class WebApiConfig 
{ 
    public static void Register(HttpConfiguration config) 
    { 
     // New code: 
     ODataModelBuilder builder = new ODataConventionModelBuilder(); 
     builder.EntitySet<Product>("Products"); 
     config.MapODataServiceRoute(
      routeName: "ODataRoute", 
      routePrefix: null, 
      model: builder.GetEdmModel()); 
    } 
} 

Tuy nhiên, trong giải pháp tự lưu trữ của tôi không có những điều như WebApiConfig.cs

ở đâu và làm thế nào tôi có thể chỉ định cấu hình OData này?

+0

Đây có phải là dự án WebApi không? Nếu có, WebApiConfig.cs sẽ được tự động thêm vào bên trong thư mục App_Start. –

Trả lời

10

Bạn chính xác, không nhất thiết phải có một thứ như WebApiConfig.cs trong dự án OWIN tự lưu trữ vì bạn khai báo phần mềm trung gian bạn cần khi cần. Tuy nhiên, nếu bạn đang theo dõi các hướng dẫn tự lưu trữ OWIN, có thể bạn đã gặp phải khái niệm Startup.cs, đó là những gì bạn có thể sử dụng, vì bạn có thể khởi tạo HttpConfiguration ở đó.

public class Startup 
{ 
    public void Configuration(IAppBuilder appBuilder) 
    { 
     // Configure Web API for self-host. 
     HttpConfiguration config = new HttpConfiguration(); 
     config.Routes.MapHttpRoute( 
      name: "DefaultApi", 
      routeTemplate: "api/{controller}/{id}", 
      defaults: new { id = RouteParameter.Optional } 
     ); 

     ODataModelBuilder builder = new ODataConventionModelBuilder(); 
     builder.EntitySet<Product>("Products"); 
     config.MapODataServiceRoute(
     routeName: "ODataRoute", 
     routePrefix: null, 
     model: builder.GetEdmModel()); 

     appBuilder.UseWebApi(config); 
    } 
} 
Các vấn đề liên quan