首页 > 其他分享 >API架构设计

API架构设计

时间:2022-10-01 14:00:09浏览次数:142  
标签:架构设计 users GET 用户 API id 资源 10

接口设计

*.Restful API

[概述] REST是指表现层状态转移(Representational State Transfer). 该概念首次出现在2000年Roy Fielding的博士论文中,Roy Fielding是HTTP规范的主要编写者之一. 其中,表现层是资源的表现层,对于网络中的资源就需要URI来定位.

1.协议

使用http或https. 对外有安全性要求时可食用https. 但内部服务器间调用可使用http或https(从效率角度通常使用http).

2.请求方法(动词)

常用方法(动词/动作) 说明 常用方法(动词/动作) 说明
GET 获取资源 POST 新增资源
PUT 更新资源 DELETE 删除资源
PATCH 全量更新(除主键外全更新) ...

3.请求路径(名词)

[概述] Restful风格中,使用名词作为路径. URL用于指向资源,路径描述中只使用名次,不要出现动词,动词由HTTP方法提供.且名词不要单复数混用,建议全部使用复数形式. Restful的核心是资源,URL应该指向资源,所以应该使用名次表达,而非动词.

HTTP方法(指定动词) 请求路径(指定名次) 说明
GET /users
/users/posts
(根资源的访问) 获取所有用户的用户信息
(子资源的访问) 获取所有用户的文章信息
GET /users/10
/users/10/posts
(根资源的访问) 获取id为10的用户的用户信息
(子资源的访问) 获取id为10的用户的文章信息
POST /users 新增用户信息
PUT /users/10 更新id为10的用户信息
DELETE /users/10 删除id为10的用户信息
PATCH /users/10 部分更新id为10的用户信息

4.集合功能(查询)

过滤Filtering: 可以通过查询字符串指定筛选条件

排序Sorting: 设计方式有很多,例如可以使用+表示升序(asc),-表示降序(desc)

分页Pagination

5.状态码

状态码 请求方法 说明信息(英文) 说明信息(中文)
200 GET OK 成功获取资源
201 POST、PUT、PATCH CREATED 成功创建或修改资源
204 DELETE NO CONTENT 成功删除资源
400 ALL Bad Request 请求错误,如GET参数有问题/PUT提交的数据错误等
401 ALL Unauthorized 权限未通过认证
403 ALL Forbidden 有权限都禁止访问该资源
404 ALL Not Found 请求的资源不存在
500 ALL Internal Server Error 服务器端错误

6.错误处理

{
		"error": 'User Not Found'
}
{
		"code": 10056,
  	"message": "Invalid ID",
  	"description": "More details"
}

7.接口版本

8.返回结果

HTTP方法 请求路径 说明
GET /users 获取所有用户的用户信息,返回JSON对象列表
GET /users/10 获取id为10的用户的用户信息,返回查到的JSON对象
POST /users 新增用户信息,返回新增的JSON对象
PUT /users/10 更新id为10的用户信息,返回修改后的JSON对象
DELETE /users/10 删除id为10的用户信息,返回空JSON对象
PATCH /users/10 部分更新id为10的用户信息,返回修改后的JSON对象

标签:架构设计,users,GET,用户,API,id,资源,10
From: https://www.cnblogs.com/SwordITC/p/16747141.html

相关文章

  • 肖sir__Java API Java类和对象13
    1.1面向对象概述什么是对象?所谓对象就是真实世界中的事物,对象与事物一一对应,也就是说现实世界中每一个事物都是一个对象。比如:物:张三的宠物狗旺财。张三是一个对象,旺......
  • 520813 - FAQ: BAPIs for goods
    SymptomThisnotecontainsfrequentlyaskedquestions/answersregarding'BAPIsforgoodsmovements'.Questions1.WherecanIfindthedocumentationforcallingth......
  • DEMO:关闭采购订单 BAPI_PO_CHANGE(带增强字段)
    货铺QQ群号:834508274调用BAPI的时候注意DEMOREPORTZDEMO_CLOSE_PO.PARAMETERSP_POTYPEBAPIMEPOHEADER-PO_NUMBER..DATA:LT_RETURNLIKETABLEOFBAPIRET2,LS_RETURN......
  • DEMO:PR 添加新行项目 BAPI_PR_CHANGE
    货铺QQ群号:834508274REPORTZLM_PR_CHANGE.PARAMETERS:P_BANFNTYPEVBEP-BANFNOBLIGATORY.DATA:LS_PRHEADERLIKEBAPIMEREQHEADER,"LS_PRHEADERXLIKEBAPIMEREQ......
  • DEMO: ME51N 创建PR BAPI_REQUISITION_CREATE
    货铺QQ群号:834508274*&---------------------------------------------------------------------**&BAPI_REQUISITION_CREATE和BAPI_PR_CREATE相关问题查看NOTE*&49962......
  • DEMO: ME51N 创建PR BAPI_PR_CREATE
    货铺QQ群号:834508274*&---------------------------------------------------------------------**&BAPI_REQUISITION_CREATE和BAPI_PR_CREATE相关问题查看NOTE*&49962......
  • DEMO:修改外向交货单BAPI_OUTB_DELIVERY_CHANGE
    货铺QQ群号:834508274TABLES:LIKP,LIPS.PARAMETERS:P_VBELNTYPEVBELN_VL.PARAMETERS:P_SERNRTYPEOBJK-SERNR.DATA:LS_HEADER_DATALIKEBAPIOBDLVHDRCHG,LS_HEADER_C......
  • 如何查找BAPI
    干货铺QQ群号:834508274有人问怎么找BAPI的问题,这里说一下。文章最早是发在博客里的,2014年写的,略作调整这里发一下,依然适用:​​http://blog.sina.com.cn/s/blog_c0978c9b0102......
  • XD01创建扩展客户前台以及BAPI测试步骤
    前两天有人在群里问SD_CUSTOMER_MAINTAIN_ALL怎么创建客户。我在demo机上测试XD01创建客户,然后再测试使用BAPI。Demo机是ECC,S4已结不用XD01了,统一使用BP创建客户和供应商等......
  • HDFS架构设计理念以及优缺点
    Hadoop是一个由Apache基金会开发的分布式系统基础架构。可以快速实现大规模数据的分布式存储开发,以及分布式程序的快速开发,利用集群的威力进行大数据的高速存储和运算。其......