5

Я создаю собственную службу веб-API OWIN с самообслуживанием. Мне нужно, чтобы эта служба отображала конечные точки OData.Как настроить конечную точку OData в самообслуживаемом веб-API-приложении

Традиционная IIS организовал метод включает 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()); 
    } 
} 

Однако в моем самопринятом решении не существует такое понятие, как WebApiConfig.cs

Где и как я могу указать эту конфигурацию OData?

+0

Это проект WebApi? Если да, WebApiConfig.cs должен быть автоматически добавлен в папку App_Start. –

ответ

10

Вы правы, в автономном проекте OWIN не обязательно должно быть WebApiConfig.cs, так как вы объявляете необходимое вам промежуточное программное обеспечение. Однако, если вы следите за учебниками по самостоятельной хостинговой деятельности OWIN, вы, вероятно, столкнулись с концепцией Startup.cs, и это то, что вы можете использовать, поскольку вы можете создать экземпляр своего 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); 
    } 
} 
Смежные вопросы