提问人:Sepidehye Fanavari 提问时间:7/26/2016 最后编辑:Sepidehye Fanavari 更新时间:7/27/2016 访问量:999
如何在 ASP Core 中实现复杂的 Web API 查询
how to implement Complex Web API queries in ASP Core
问:
我是 Web API 设计的新手,因此我尝试使用以下文章来学习 Web API 设计的最佳实践:
Apigee 建议 Web API 开发人员使用这些建议来获得更好的 API。 我在这里引用其中的两条建议: 我需要 C# 代码在我的 Web API(在 ASP Core 中)中实现这些建议,Web API 是本机移动应用程序和 AngularJs 网站的后端。
- 扫除“? 大多数 API 的复杂性超出了资源的基本级别。复杂性可能包括许多可以更新、更改、查询的状态,以及与 资源。
通过在 HTTP 问号后面放置可选状态和属性,使开发人员能够轻松使用基 URL。为了让所有红狗在公园里奔跑:
GET /dogs?color=red&state=running&location=park
- 部分响应允许您为开发人员提供他们需要的信息。
例如,在 Twitter API 上请求推文。你会得到比典型的 Twitter 应用程序通常需要的更多的东西——包括人名、推文文本、时间戳、消息转发的频率以及大量元数据。
让我们看看几个领先的 API 如何处理为开发人员提供他们需要的东西 回应,包括率先提出部分回应想法的谷歌。
/people:(id,first-name,last-name,industry)
对一个人的此请求将返回 ID、名字、姓氏和行业。
LinkedIn使用这个简洁的:(进行部分选择...语法,这是不言而喻的。
此外,开发人员很难使用搜索引擎对含义进行逆向工程。
脸书
/joe.smith/friends?fields=id,name,picture
谷歌
?fields=title,media:group(media:thumbnail)
谷歌和Facebook也有类似的方法,效果很好。
它们每个都有一个名为 fields 的可选参数,您可以在该参数后面输入要返回的字段的名称。
如本示例所示,您还可以将子对象放在响应中,以便从其他资源中提取其他信息。
在逗号分隔列表中添加可选字段
谷歌的方法非常有效。
以下是使用这种方法从我们的狗 API 中获取我们需要的信息的方法:
/dogs?fields=name,color,location
现在我需要 C# 代码来处理这些类型的查询,甚至更复杂的查询,如下所示:
api/books/?publisher=Jat&Writer=tom&location=LA?fields=title,ISBN?$orderBy=location desc,writerlimit=25&offset=50
因此,Web API 用户将能够发送他们想要的任何类型的请求,这些请求具有不同的复杂性、字段和排序,...根据他们的需求。
答: 暂无答案
评论
/foo/bar