REST API

作者: 航海家1984 | 来源:发表于2017-06-05 18:12 被阅读0次

What 什么是REST

表述性状态转移。一种web 服务的架构风格

Who 谁发明的REST

roy fielding 于2000年写的论文

核心

  • 资源
  • 统一接口
  • 状态转移

REST成熟度模型

  • http
  • 表示抽象的资源
  • 用http动词来表述对资源的增删改查

REST的问题

  • 如何聚合多个接口返回的内容
  • 浏览api如何能像浏览网页那样

资源表述

  • 用名词来表述资源,用http方法来表述CRUD
  • url 小写
  • 什么时候使用下划线,什么时候用连字符?
  • 资源的名词用复数表示
  • 表述关联关系,可以有多级,例如:/user/1/address/1
  • 当无法用http方法来表述谓词的时候,可以这样:
  • /products/actions/up
  • /price_calc?schedule_id={}
  • /repo/fock
  • 用过滤器来表示复杂的查询,例如/users?limit=10
  • 多个单词的名词,用破折线分割表示路径,用下划线分割表示属性

request

  • 请求的header中加入request-id,用于定位请求日志
  • 请求的header中指定需要返回的内容格式
  • 尽可能用json表示请求体的内容,因为有类型信息,且支持嵌套

response

  • 用http状态码表示请求的成功失败
  • 请求失败,返回易于机器读的错误码和易于人读的错误信息
  • 资源新建成功,同时返回新建的资源
  • 用UTC,ISO8601 格式化时间yyyy-MM-ddTHH:mm:ssZ

缓存

  1. http cache-control
  2. http conditional request
    2.1 ETag
    2.2 Last_Modified

相关文章

网友评论

      本文标题:REST API

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