爽爽淫人网

【MXGS-645】人妻中出しごっくんソープ 人妻女雀士 雪菜 22个优秀试验助你API蓄意才能更进一竿

发布日期:2024-08-03 17:00    点击次数:102

【MXGS-645】人妻中出しごっくんソープ 人妻女雀士 雪菜 22个优秀试验助你API蓄意才能更进一竿

【编者的话】为蓄意REST API而烦躁?不要慌【MXGS-645】人妻中出しごっくんソープ 人妻女雀士 雪菜,这里有蓄意REST API的超实用提倡!

也曾因为一个灾祸的API而感到黯然吗?

在这个微劳动的寰球里,后端API的一致性蓄意是必弗成少的。

今天,咱们将商讨一些可盲从的最好试验。咱们将保握好像和甘好意思-是以系好安全带,动身咯!

[[424906]]

最初先容一些术语

任何API蓄意皆盲从一种叫作念“面向资源蓄意”的原则

资源:资源是数据的一部分,举例:用户 勾搭:一组资源称为勾搭,举例:用户列表 URL:标识资源或勾搭的位置,举例:/用户 1. 对URL使用kebab-case(短横线小写离隔情势)

举例,淌若你念念要取得订单列表。

不应该:

/systemOrders或/system_orders 【MXGS-645】人妻中出しごっくんソープ 人妻女雀士 雪菜

应该:

/system-orders 
2. 参数使用camelCase(驼峰情势)

举例,淌若你念念从一个特定的商店购买居品。

不应该:

/system-orders/{order_id}或/system-orders/{OrderId} 

应该:

/system-orders/{orderId} 
3.指向勾搭的复数称号

淌若你念念取得系统的扫数用户。

不应该:

GET /user或GET /User 

应该:

GET /users 
4. URL以勾搭运转,以标识符扫尾

淌若要保握想法的单一性和一致性。

不应该:

GET /shops/:shopId/category/:categoryId/price 

这很灾祸,因为它指向的是一个属性而不是资源。

应该:

GET /shops/:shopId/或GET /category/:categoryId 
5. 让动词隔离你的资源URL

不要在URL中使用动词来抒发你的意图。违反,使用相宜的HTTP设施来形容操作。

不应该:

POST /updateuser/{userId}或GET /getusers 

应该:

PUT /user/{userId} 
6. 对非资源URL使用动词

淌若你有一个端点,它只复返一个操作。在这种情况下,你不错使用动词。举例,淌若你念念要向用户重新发送警报。

应该:

POST /alarm/245743/resend 

请记取,这些不是咱们的CRUD操作。违反,它们被合计是在咱们的系统中实行特定责任的函数。

7. JSON属性使用camelCase驼峰情势

淌若你正在构建一个恳求体或反馈体为JSON的系统,那么属性名应该使用驼峰大小写

不应该: 

{ user_name: "Mohammad Faisal"  user_id: "1"  } 

应该: 

{ userName: "Mohammad Faisal" userId: "1" } 
8. 监控

RESTful HTTP劳动必须达成/health和/version和/metricsAPI端点。他们将提供以下信息。

快播伦理电影在线观看

/health

用200 OK现象码响支吾/health的恳求。

/version

用版块号响支吾/version的恳求。

/metrics

这个端点将提供多样标的,如平均反馈本领。

也激烈推选使用/debug和/status端点。

9. 不要使用table_name行动资源名

不要只使用表名行动资源名。从永久来看,这种懒惰是无益的。

不应该:product_order

应该:product-orders

这是因为公开底层体绑缚构不是你的办法。

10. 使用API蓄意用具

有好多好的API蓄意用具用于编写好的文档,举例:

API蓝图 Swagger

领有淡雅而戒备的文档不错为API使用者带来淡雅的用户体验。

11. 使用通俗序数行动版块

长久对API使用版块截至,并将其向降级徙,使其具有最大的作用域。版块号应该是v1, v2等等。

应该:

http://api.domain.com/v1/shops/3/products

长久在API中使用版块截至,因为淌若API被外部实体使用,改造端点可能会碎裂它们的功能。

12. 在你的反馈体中包括总资源数

淌若API复返一个对象列表,则反馈中老是包含资源的总和。你不错为此使用total属性。

不应该: 

{ users: [ ... ] } 

应该: 

{ users: [ ... ], total: 34 } 
13. 给与limit和offset参数

在GET操作中长久给与limit和offset参数。

应该:

GET /shops?offset=5&limit=5 

这是因为它关于前端的分页是必要的。

14. 获取字段查询参数

复返的数据量也应该推敲在内。添加一个fields参数,只公开API中必需的字段。

例子:

只复返商店的称号,地址和相关神气。

GET /shops?fields=id,name,address,contact 

在某些情况下,它还有助于减少反馈大小。

15. 不要在URL中通过认证令牌

这是一种荒谬灾祸的作念法,因为url无为被纪录,而身份考证令牌也会被无谓要隘纪录。

不应该:

GET /shops/123?token=some_kind_of_authenticaiton_token 

违反,通及其部传递它们:

Authorization: Bearer xxxxxx, Extra yyyyy 

此外,授权令牌应该是顷然灵验期的。

16. 考证内容类型

劳动器不应该假设内容类型。举例,淌若你给与application/x-www-form-urlencoded,那么挫折者不错创建一个表单并触发一个通俗的POST恳求。

因此,长久考证内容类型,淌若你念念使用默许的内容类型,请使用content-type: application/json

17. 对CRUD函数使用HTTP设施

HTTP设施用于评释注解CRUD功能。

GET:检索资源的示意情势。 POST:创建新的资源和子资源。 PUT:更新现存资源。 PATCH:更新现存资源,它只更新提供的字段,而不更新其他字段。 DELETE:删除已存在的资源。 18. 在嵌套资源的URL中使用关系

以下是一些实质例子:

GET /shops/2/products:从shop 2获取扫数居品的列表。 GET /shops/2/products/31:获取居品31的戒备信息,居品31属于shop 2。 DELETE /shops/2/products/31:应该删除居品31,它属于商店2。 PUT /shops/2/products/31:应该更新址品31的信息,只在resource-URL上使用PUT,而不是勾搭。 POST /shops:应该创建一个新的商店,并复返创建的新商店的戒备信息。在勾搭url上使用POST。 19. CORS(跨源资源分享)

一定要为扫数面向大家的api撑握CORS(跨源资源分享)头部。

推敲撑握CORS允许的“*”起原,并通过灵验的OAuth令牌强制授权。

幸免将用户阐明与原始考证相勾搭。

20.安全

在扫数端点、资源和劳动上实施HTTPS (tls加密)。

强制并条目扫数回调url、推送见知端点和webhooks使用HTTPS。

21. 失实

当客户端向劳动发出无效或不正确的恳求,或向劳动传递无效或不正确的数据,而劳动拒却该恳求时,就会出现失实,或者更具体地说,出现劳动失实。

例子包括无效的身份考证阐明、不正确的参数、未知的版块id等。

当由于一个或多个劳动失实而拒却客户端恳求时,一定要复返4xx HTTP失实代码。 推敲措置扫数属性,然后在单个反馈中复返多个考证问题。 22. 黄金律例

淌若您对API情势的决定有疑问,这些黄金礼貌不错匡助咱们作念出正确的决定。

扁平比嵌套好。 通俗胜于复杂。 字符串比数字好。 一致性比定制更好。

便是这么——淌若你依然走到了这一步,恭喜你!但愿你学到了一些东西。

但愿你渡过好意思好的一天!

译者:Mr.lzc,软件工程师、DevOpsDays、HDZ深圳中枢组织者,当今供职于华为,从事云计较责任,专注于K8s、微劳动领域。

 





Powered by 爽爽淫人网 @2013-2022 RSS地图 HTML地图

Copyright Powered by站群 © 2013-2022 版权所有