【发布时间】:2019-11-18 22:02:57
【问题描述】:
假设我有一个名为 Employee 的基本实体类型和一个名为 Manager 的派生实体类型。可以通过/Employees URL 访问所有员工的集合。将 Manager 实例发布到员工实体集的正确方法是什么?
OData v4 protocol spec 表示“要在集合中创建实体,客户端会向该集合的 URL 发送 POST 请求。”但是规范没有说明在派生类型存在的情况下指定 POSTed 实体的类型。
URI spec 表示应使用目标 URL 上的强制转换段来处理派生类型。例如,
POST /Employees/NS.Manager
{ "Name": "Bill Lumbergh" ... }
同时,JSON Format spec 建议使用odata.type 注释,如下所示:
POST /Employees
{ "@odata.type": "#NS.Manager", "Name": "Bill Lumbergh" ... }
那么哪个是正确的?还是两者都有?
请记住,我询问的是 OData 规范,而不是特定的 OData 库/框架(例如 ASP.NET)。
【问题讨论】:
标签: odata