RestfulAPI规范

作者: 潜水的旱鸭子 | 来源:发表于2020-09-23 15:27 被阅读0次

Restful是目前最流行的API设计规范,用于Web数据接口的设计。

  1. 动词+宾语

    • Restful的核心思想就是,客户端发出的数据操作指令都是“动词+宾语”的结构。

    • 如:GET/articles这个接口,GET是动词,articles是宾语

    • 动词通常是五种HTTP方法,对应CRUD操作。

      • GET:读取(read)
      • POST:新建(create)
      • PUT:更新(update)
      • PATCH:更新(update)通常是部分更新
      • DELETE:删除(delete)
    • 根据HTTP的规范,动词一律大写。

  2. 动词的覆盖

    • 有些客户端只能使用GET和POST这两种方法。服务器必须接受POST模拟其他三个方法(PUT、PATCH、DELETE)。

    • 这时,客户端发出的 HTTP 请求,要加上X-HTTP-Method-Override属性,告诉服务器应该使用哪一个动词,覆盖POST方法。

      POST /api/Person/4 HTTP/1.1
      X-HTTP-Method-Override: PUT

    • 上面代码中,X-HTTP-Method-Override指定本次请求的方法是PUT,而不是POST。

    • 这时,客户端发出的 HTTP 请求,要加上X-HTTP-Method-Override属性,告诉服务器应该使用哪一个动词,覆盖POST方法。

  3. 宾语必须是名词

    • 宾语就是 API 的 URL,是 HTTP 动词作用的对象。它应该是名词,不能是动词。

    • 比如,/articles这个 URL 就是正确的,而下面的 URL 不是名词,所以都是错误的。

      /getAllCars
      /createNewCar
      /deleteAllRedCars

  4. 复数 URL

    • 既然 URL 是名词,那么应该使用复数,还是单数?

    • 这没有统一的规定,但是常见的操作是读取一个集合,比如GET /articles(读取所有文章),这里明显应该是复数。

    • 为了统一起见,建议都使用复数 URL,比如GET /articles/2要好于GET /article/2。

  5. 避免多级 URL

    • 常见的情况是,资源需要多级分类,因此很容易写出多级的 URL,比如获取某个作者的某一类文章。

      GET /authors/12/categories/2
      - 这种 URL 不利于扩展,语义也不明确,往往要想一会,才能明白含义。

    • 更好的做法是,除了第一级,其他级别都用查询字符串表达。

      GET /authors/12?categories=2

    • 下面是另一个例子,查询已发布的文章。你可能会设计成下面的 URL。

      GET /articles/published

    • 查询字符串的写法明显更好。

      GET /articles?published=true

相关文章

  • restfulAPI规范

    什么是restfulAPI 满足rest 设计规范的Api接口。 restfulAPI 的设计规范是怎么样的? 1...

  • RestfulAPI规范

    Restful是目前最流行的API设计规范,用于Web数据接口的设计。 动词+宾语Restful的核心思想就是,客...

  • 3.restful API

    1.什么是restfulapi ? 答:RESTful是一种架构的规范与约束、原则,符合这种规范的架构就是REST...

  • android study: Retrofit

    Retrofit 简介 Retrofit 是一套由Square所开发维护,將RESTfulAPI 写法规范和模块化...

  • 关于RESTful的六个限制

    前言 RESTfulapi是开发中常用的概念,那什么是REST,什么又是RESTfulapi? REST介绍 RE...

  • restfulApi

    什么是restful 一、协议 API与用户的通信协议,总是使用HTTPs协议。 二、域名 应该尽量将API部署在...

  • RESTful API的拦截

    RESTful API的拦截 场景:对RESTfulAPI作统一的处理,比如希望对所有的RESTfulAPI记录服...

  • ywht restfulapi

    base url : http://ip:port/isp_kuaiyun_ywht/rest/v1 1.获取虚拟...

  • python-gitlab自动同步mysql存储过程以及本地文件

    **运行环境: Python 2.7.5 , linux ** 参考文档 restfulAPI: https://...

  • 什么是 REST?

    REST[https://restfulapi.net/](REpresentational State Tran...

网友评论

    本文标题:RestfulAPI规范

    本文链接:https://www.haomeiwen.com/subject/drnnyktx.html