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

it2022-05-07  4

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=1GOOD  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 #44. 保证 HEAD 和 GET 方法是安全的,不会对资源状态有所改变(污染)。比如严格杜绝如下情况:  GET /deleteProduct?id=15. 资源的地址推荐用嵌套结构。比如:  GET /friends/10375923/profile  UPDATE /profile/primaryAddress/city6. 警惕返回结果的大小。如果过大,及时进行分页(pagination)或者加入限制(limit)。HTTP协议支持分页(Pagination)操作,在Header中使用 Link 即可。7. 使用正确的HTTP Status Code表示访问状态:HTTP/1.1: Status Code Definitions8. 在返回结果用明确易懂的文本(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)