Server的API如何设计才满足RESTful要求?

Server的API如何设计才满足RESTful要求?


首先是简洁版里面的那几点。外加一些附带的 best practices:
1. URL root:
  https://example.org/api/v1/*
  https://api.example.com/v1/*
2. API versioning:
可以放在URL里面,也可以用HTTP的header:
  /api/v1/
3. URI使用名词而不是动词,且推荐用复数。
BAD
  /getProducts
  /listOrders
  /retrieveClientByOrder?orderId=1
GOOD
  GET /products : will return the list of all products
  POST /products : will add a product to the collection
  GET /products/4 : will retrieve product #4
  PATCH/PUT /products/4 : will update product #4
4. 保证 HEAD 和 GET 方法是安全的,不会对资源状态有所改变(污染)。比如严格杜绝如下情况:
  GET /deleteProduct?id=1
5. 资源的地址推荐用嵌套结构。比如:
  GET /friends/10375923/profile
  UPDATE /profile/primaryAddress/city
6. 警惕返回结果的大小。如果过大,及时进行分页(pagination)或者加入限制(limit)。HTTP协议支持分页(Pagination)操作,在Header中使用 Link 即可。
7. 使用正确的HTTP Status Code表示访问状态:HTTP/1.1: Status Code Definitions
8. 在返回结果用明确易懂的文本(String。注意返回的错误是要给人看的,避免用 1001 这种错误信息),而且适当地加入注释。
9. 关于安全:自己的接口就用https,加上一个key做一次hash放在最后即可。考虑到国情,HTTPS在无线网络里不稳定,可以使用Application Level的加密手段把整个HTTP的payload加密。有兴趣的朋友可以用手机连上电脑的共享Wi-Fi,然后用Charles监听微信的网络请求(发照片或者刷朋友圈)。
如果是平台的API,可以用成熟但是复杂的OAuth2。

转载于:https://www.cnblogs.com/wuxiang/p/8695944.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值