在 ASP.NET WebApi 中路由相关实体的最佳实践是啥
Posted
技术标签:
【中文标题】在 ASP.NET WebApi 中路由相关实体的最佳实践是啥【英文标题】:What is the best practice to route related entities in ASP.NET WebApi在 ASP.NET WebApi 中路由相关实体的最佳实践是什么 【发布时间】:2015-11-21 13:43:13 【问题描述】:我正在使用具有链接实体的 WebApi 应用程序中的实体。 例如:
Entity Street 有以下相关资源:City
实体City
具有:Region
、CityType
实体Person
:Address
,Nationality
,Position
,Catalog
,Documents
...
如何正确路由相关实体?
在我使用 OData 请求之前,例如:http://localhost:3761/api/City?$expand=CityType,Region
用于 City
和 http://localhost:3761/api/Person?$expand=Address,Nationality,Documents,Catalog
用于 Person
。
但是大多数客户不知道哪些存在相关对象。他们想添加一些参数来请求将获得所有链接数据的实体。
http://localhost:3761/api/Person/full
或 http://localhost:3761/api/Person/2/full
的示例为具有 ID
= 2 的人。
我试图实现它但是I have problem with routing。 因此,由于我有一个基本 api 控制器,因此属性不会继承到我的子控制器,因此它不起作用。
您能否建议我路由相关实体的最佳做法是什么?
P.S: 对不起我的英语,如果有什么不清楚的地方请告诉我。 谢谢
【问题讨论】:
谁能帮助我?请至少写评论 我需要你的帮助。请 【参考方案1】:看看 Trello 如何组织他们的 API Trello API
它们允许一个级别的透视和声明您感兴趣的数据类型的可能性。除非您从有效列表中指定字段列表,否则您会返回默认字段。
示例: GET: api/1/cards/card id/members (Options)
在你的情况下,这会变成这样:
http://localhost:3761/api/people/2?&fields=address,nationality,position,catalog
【讨论】:
谢谢,但我知道返回字段很热门。我询问相关实体(对象中的对象)。我发现了类似的问题***.com/questions/32620089/…。但是没有答案可以帮助我 在我的情况下api/Person?$expand=Address,Nationality,Documents,Catalog
不是字段,这是相关实体(使用导航属性作为外键)以上是关于在 ASP.NET WebApi 中路由相关实体的最佳实践是啥的主要内容,如果未能解决你的问题,请参考以下文章
如何在 POST 正文中为 asp.net WebAPI POST 路由格式化 XML