0

标题解释了要求。是否可以在单个项目中公开多个端点?

就像是:

因为我需要将功能分成多个组件。谁能帮我?

更新

目前我正在使用下面的代码来创建和公开 Odata 服务。

public void Configuration(IAppBuilder app)
{
   HttpConfiguration config = new HttpConfiguration();
   ConfigureRoute(config);
   ConfigureGlobalFilters(config);

   HttpServer server = new HttpServer();
   ODataBatchHandler batchHandler = new DefaultODataBatchHandler(server);
   config.MapODataServiceRoute("Odata", "Odata", GenerateEdmModel(), batchHandler);


   ...

   config.EnsureInitialized();
}

private IEdmModel GenerateEdmModel()
{
   ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
   builder.Namespace = "ServiceA";
   builder.ContainerName = "DefaultContainer";

   builder.EntitySet<Permission>("ApplicationPermissions");

   return builder.GetEdmModel();
}

我想为每个组件公开单独的服务(在不同的命名空间下?)。

4

1 回答 1

2

以下行应该是您关心的行:

config.MapODataServiceRoute("Odata", "Odata", GenerateEdmModel(), batchHandler);

第二个字符串参数是routePrefix,这意味着当前您可能正在访问http://yourhost.com/Odata/ $metadata。如果您只是创建另一个具有不同前缀值的映射(例如Odata2),您将能够针对http://yourhost.com/Odata/ $metadata 和http://yourhost.com/Odata2/ $metadata 进行调用。不过,您可能还想给它们一个唯一的 routeName(第一个字符串参数),并且您可能还想提供不同的模型,因此这两种服务实际上是不同的 :)。

于 2017-05-16T19:19:23.053 回答