我可以覆盖WebAPI OData服务文档吗?

时间:2014-11-18 16:58:46

标签: c# asp.net-web-api odata

我正在试图弄清楚为什么OData的WebAPI实现不能始终如一地向服务文档输出所有操作和过程。我还希望服务文档中输出的URL包含必需的&可选参数。

我将首先详细说明我遇到的不一致服务文档的问题:

例如,点击:

http://services.odata.org/V4/(S(r30qiqlnwgbfi2sgesu5l25w))/TripPinServiceRW/

不包含未绑定的操作“ResetDataSource”。在本地运行它,我实际上甚至不能始终如一地看到GetNearestAirport函数。

当我检查我的IEdmModel时,该函数显示它应该包含在服务文档中:

var desiredElem = edmModel.EntityContainer.Elements.First(e => e.Name == "GetNearestAirport") as EdmFunctionImport;
Console.WriteLine(desiredElem.IncludeInServiceDocument);

任何人都可以告诉我是否可以覆盖生成的服务文档,以及我是否遗漏了为什么服务文档不能始终如一地生成相同的输出?

作为参考,您还可以查看TripPin服务的{github代码示例here

1 个答案:

答案 0 :(得分:0)

我没有遇到有关ResetDataSource操作和GetNearestAirport函数未出现在元数据服务文档中的行为。我没有听说有人遇到过这个问题。本周将与OData团队聊聊。

关于覆盖元数据服务文档,我认为目前没有任何方法可以对其进行更改。允许更改MSD不会遵循OData协议,但这是协议讨论,而不是技术。我不认为OData团队认为有充分的理由允许从技术角度来看这一点。