如何在ASP Core

时间:2016-07-25 20:08:01

标签: asp.net-web-api asp.net-core asp.net-web-api2 asp.net-mvc-routing url-routing

我是网络API设计的新手,所以我尝试使用这些文章学习Web API设计的最佳实践:

1。Microsoft REST API Guidelines

2。Web API Design-Crafting Interfaces that Developers Love from "Apigee"

Apigee建议Web API开发人员使用这些建议来获得更好的API。 我在这里引用两条建议: 我需要C#代码在我的Web API(在ASP Core中)实现这些建议,这是本机移动应用程序和AngularJs网站的后端。

  
      
  1. 扫除'?'背后的复杂性   大多数API都具有超出资源基础级别的复杂性。复杂性可以包括许多可以更新,更改,查询的状态,以及与之关联的属性   资源。
  2.         

    通过在HTTP问号后面添加可选的状态和属性,让开发人员可以轻松使用基本URL。让所有红狗在公园里跑:

         

    GET /dogs?color=red&state=running&location=park

         
        
    1. 部分响应允许您为开发人员提供他们所需的信息。
    2.         

      以Twitter API上的推文请求为例。您将获得的不仅仅是典型的Twitter应用程序经常需要的内容 - 包括人名,推文文本,时间戳,重新发布消息的频率以及大量元数据。

           

      让我们看看几个领先的API如何处理开发人员所需的内容   回应,包括谷歌开创了部分回应的想法。

           

      LinkedIn

           

      /people:(id,first-name,last-name,industry)

           

      此人的请求会返回ID,名字,姓氏和行业。

           

      LinkedIn使用这种简洁的语法进行部分选择:( ...)语法不言而喻。

           

      此外,开发人员很难使用搜索引擎对其含义进行逆向工程。

           

           

      /joe.smith/friends?fields=id,name,picture

           

      谷歌

           

      ?fields=title,media:group(media:thumbnail)

           谷歌和Facebook有类似的方法,效果很好。

           

      它们每个都有一个名为fields的可选参数,之后你可以输入要返回的字段名称。

           

      正如您在此示例中所看到的,您还可以将子对象放入响应中,以从其他资源中提取其他信息。

           

      在逗号分隔的列表中添加可选字段

           

      Google方法效果非常好。

           

      以下是如何使用此方法从我们的狗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用户将能够根据他们的需求发送他们想要的任何类型的请求,具有不同的复杂性,字段,排序等。

0 个答案:

没有答案