• RESTful API


    RESTful API设计规范:

    •  API与用户的通信协议,总是使用https协议

      https://www.baidu.com

    •  不同的method,进行不同的操作

       GET    :从服务器取出资源(一项或多项)

      POST   :在服务器新建一个资源

      PUT   :在服务器更新客户端提供的完整资源

      PATCH   :在服务器更新客户端提供的改变的属性

      DELETE   :从服务器删除资源

     •  面向资源编程,一切皆资源,均使用名词表示(可复数)

      https://www.baidu.com/v1/animals

      https://www.baidu.com/v1/girls

     •  体现版本

        URL: https://www.baidu.com/v1/

          https://www.baidu.com/v2/

     •  域名体现API  

        https://www.baidu.com/api/  

    •  通过在URL上传参的形式传递搜索条件         

    • https://www.baidu.com/api/v1/girls?limit=10:指定返回记录的数量
    • https://www.baidu.com/api/v1/girls?offset=10:指定返回记录的开始位置
    • https://www.baidu.com/api/v1/girls?page=2&per_page=100:指定第几页,以及每页的记录数
    • https://www.baidu.com/api/v1/girls?sortby=name&order=asc:指定返回结果按照哪个属性排序,以及排序顺序
    • https://www.baidu.com/api/v1/girls?animal_type_id=1:指定筛选条件

     •  响应式设置状态码 

    200 OK - [GET]:服务器成功返回用户请求的数据。
    201 CREATED - [POST/PUT/PATCH]:用户新建或修改数据成功。
    202 Accepted - [*]:表示一个请求已经进入后台排队(异步任务)
    204 NO CONTENT - [DELETE]:用户删除数据成功。
    400 INVALID REQUEST - [POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作。
    401 Unauthorized - [*]:表示用户没有权限(令牌、用户名、密码错误)。
    403 Forbidden - [*] 表示用户得到授权(与401错误相对),但是访问是被禁止的。
    404 NOT FOUND - [*]:用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的。
    406 Not Acceptable - [GET]:用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)。
    410 Gone -[GET]:用户请求的资源被永久删除,且不会再得到的。
    422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误。
    500 INTERNAL SERVER ERROR - [*]:服务器发生错误,用户将无法判断发出的请求是否成功。

      •  返回值,根据不同的操作,服务器向客户端返回如下结果: 

    GET /collection:返回资源对象的列表(数组)
    GET /collection/resource:返回单个资源对象
    POST /collection:返回新生成的资源对象
    PUT /collection/resource:返回完整的资源对象
    PATCH /collection/resource:返回完整的资源对象
    DELETE /collection/resource:返回一个空文档  

     •  错误处理,返回错误信息,error作为key                            

     {
    
    "error":"xxx错误"
    
    }   

    •  Hypermedia API 返回结果中提供结果的详细内连接,连接其他API方法       

    { "data":{
         "rel":   "collection https://www.baidu.com/girls",
         "href":  "https://www.baidu.com/api/girls",
         "title": "List of girls",
         "type":  "application/vnd.yourformat+json"
    }}

                         

  • 相关阅读:
    安装篇-安装Nacos
    安装篇-安装RabbitMQ
    C类型字符串和字符数组的区别
    数据结构之链表操作
    Android WebView学习
    MySQL初级学习
    Android LinearLayout深入学习
    排序算法总结
    Apache Mina-1
    Nginx+Keepalived 集群方案
  • 原文地址:https://www.cnblogs.com/zivli/p/10280098.html
Copyright © 2020-2023  润新知