View on GitHub

招财喵

The documents about Software Analysis & Design Team Work

REST API设计规范

REST API

REST API被建模为可单独寻址的资源的集合,资源可以通过名称引用,并通过一组方法进行操作。以下规范参考REST Google API的设计方法。

设计流程

资源

一个面向资源的API通常是按资源层级来建模的,各层级节点被称为资源或者集合。

资源ID

识别父资源中资源的非空URI段。

集合ID

识别父资源中集合资源的非空URI段。

资源命名

在面向资源的API中,资源被命名为实体,其中资源名是它们的标识符。每个资源都有自己的资源名,资源名由资源本身的ID、父资源的ID和它的API服务名组成。

集合是一种特殊类型的资源,它包含相同类型的子资源列表,例如

API 集合ID 资源ID
//storage.moneymeow.com /users /user-id

方法

面向资源的API的关键特性是它强调资源,而不是在资源上执行的方法。一个面向资源的API使用少量方法操作大量资源。

标准方法

错误码

HTTP RPC 描述
200 OK 正常
400 INVALID_ARGUMENT 客户端指定了无效参数
400 FAILED_PRECONDITION 请求无法再当前系统状态下执行
400 OUT_OF_RANGE 越界
401 UNAUTHENTICATED 未通过身份验证
403 PERMISSION_DENIED 客户端没有足够的权限
404 NOT_FOUND 指定资源未被发现或请求被拒绝
409 ABORTED 并发冲突
409 ALREADY_EXISTS 客户端尝试创建的资源已存在
429 RESOURCE_EXHAUSTED 资源配额达到限制速率
499 CANCELLED 请求被取消
500 DATA_LOSS 不可恢复的数据丢失或损坏
500 UNKNOWN 未知的服务器错误
500 INTERNAL 内部服务器错误
501 NOT_IMPLEMENTED API方法未由服务器实现
503 UNAVALIABLE 服务不可用
504 DEADLINE_EXCEEDED 请求超时