前后端分离路由设计规则

1:资源作为网址,只能有名词,不能有动词,而且所用名词往往与数据库表名对应。如以下是不好的例子

/getProducts
/listOrders
/retreiveClientByOrder?orderId=1

对于一个简洁结构,应该始终使用名词,如下

GET /products
POST /products
GET /products/4

 

2:HTTP动词

GET(SELECT):从服务器取出资源(一项或多项)
POST(CREATE):从服务器新建一个资源
PUT(UPDATE):从服务器更新资源(客户端提供改变后的完整资源)
DELETE(DELETE):从服务端删除资源
PATCH(UPDATE):在服务器更新资源
HEAD:获取资源的元数据
OPTIONS:获取信息,关于资源的某些属性是客户端可以改变的

 

以下是一些例子:

GET /zoos  列出所有动物园  
POST /zoos  新建一个动物园(上传文件)
PUT /zoos/ID 更新某个指定动物园的信息
DELETE /zoos/ID 删除某个动物园

  

3:状态码

200 OK-[GET]:服务器成功返回用户请求的数据

201 CREATED-[POST/PUT/PATCH]:用户新建或修改数据成功

202 Accepted-[']:表示一个请求已经进入后台排队(异步任务)

204 NO CONTENT-[DELETE]:用户删除数据成功

400 INVALID REQEST-[POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作

401 Unauthorized-[*]:表示用户没有权限(令牌、用户名、密码错误)

403 Forbidden-[*]:表示用户得到授权(与401错误相对),但是访问是被禁止的

404 NOT FOUND-[*]:用户发出的请求针对的是不存在的记录,服务器没有进行操作

406 Not Acceptable-[GET]:用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)

410 Gone-[GET]:用户请求的资源被永久删除,且不会再得到

422 Unprocessable entity-[POST/PUT/PATCH]:当创建一个对象时,发生一个验证错误

500 INTERNAL SERVER ERROR-[*]:服务器发生错误,用户将无法判断发出的请求是否成功

posted @ 2021-11-06 10:11  天叔  阅读(198)  评论(0编辑  收藏  举报