我想知道OData协议是否允许对自定义函数的结果进行修补,例如让我们说一个具有自定义函数的API,返回一个实体:
https://<serviceroot>/api/EntitySet('id')/GetChildEntity(key=entryId)/
为了避免额外的往返,我希望客户端能够通过对其进行补丁来进一步修改GetChildEntity的返回实体,以便
PATCH https://<serviceroot>/api/EntitySet('id')/GetChildEntity(key=entryId)/
OData协议是否允许这样做?
答案 0 :(得分:1)
是的,根据协议这是支持,你可以参考规范(http://docs.oasis-open.org/odata/odata/v4.0/errata03/os/complete/part1-protocol/odata-v4.0-errata03-os-part1-protocol-complete.html#_Toc453752310),声明是
如果函数是可组合的,则可以将附加路径段附加到URL,该URL标识可组合函数(或函数导入),以适合函数(或函数导入)返回的类型。最后一个路径段确定可以与此URL一起使用的系统查询选项和HTTP谓词,例如如果最后一个路径段是多值导航属性,则可以使用POST请求在已标识的集合中创建新实体。