全栈开发必备技能:构建RESTful API的13种最佳实践

Facebook、GitHub、google以及其他许多巨头都需要一种服务和消费数据的方式 。在当今的开发环境中 , RESTful API仍然是服务和消费数据的最佳选择之一 。

全栈开发必备技能:构建RESTful API的13种最佳实践

文章插图
 
但是你是否考虑过学习行业标准?设计RESTful API的最佳实践是什么?从理论上讲 , 任何人都可以在不到五分钟的时间内快速启动数据API——无论是Node.js , Golang还是Python 。
我们将探讨在构建RESTful API时应考虑的13种最佳实践 。但首先 , 让我们快速阐明RESTful API 。
什么是RESTful API?RESTful API需要满足以下约束才能被称为RESTful API 。
  1. 客户端-服务器模型:RESTful API遵循客户端-服务器模型 , 其中服务器为数据提供服务 , 而客户端连接到服务器以使用数据 。客户端和服务器之间的交互是通过HTTP(S)请求进行的 , 该请求传输了请求的数据 。
  2. 无状态:更重要的是 , RESTful API应该是无状态的 。每个请求都被视为独立请求 。服务器不应跟踪可能影响将来请求结果的任何内部状态 。
  3. 统一接口:最后 , 一致性定义了客户端和服务器之间的交互方式 。RESTful API定义了命名资源的最佳实践 , 但定义了允许你修改资源/与之交互的固定HTTP操作 。可以在RESTful API中访问以下HTTP操作:GET请求:检索资源POST请求:创建资源或将信息发送到APIPUT请求:创建或替换资源PATCH请求:更新现有资源DELETE请求:删除资源
在对RESTful API的特性有了更深入的了解后 , 是时候了解更多关于RESTful API的最佳实践了 。
本文为你提供了13种最佳实践的可行清单 。让我们来探索!
全栈开发必备技能:构建RESTful API的13种最佳实践

文章插图
 
1.正确使用HTTP方法我们已经讨论了可用于修改资源的HTTP方法:GET , POST , PUT , PATCH和DELETE 。
尽管如此 , 许多开发人员还是倾向于滥用GET和POST或PUT和PATCH 。通常 , 我们看到开发人员使用POST请求来检索数据 。此外 , 我们看到开发人员使用PUT请求来替换资源 , 而他们只想更新该资源的单个字段 。
确保使用正确的HTTP方法 , 因为这将为使用你的RESTful API的开发人员增加很多混乱 。最好是坚持使用预定的准则 。
2.命名约定【全栈开发必备技能:构建RESTful API的13种最佳实践】了解RESTful API命名约定将对你有组织地设计API有很大帮助 。根据你服务的资源设计一个RESTful API 。
例如 , 你的API管理着作者和书籍(是的 , 一个经典的例子) 。现在 , 我们要添加一个新作者或访问一个ID为 3 的作者 。你可以设计下面的路由来达到这个目的:
  • api.com/addNewAuthor
  • api.com/getAuthorByID/3
想象一下 , 一个API承载了许多资源 , 每个资源都有许多属性 。可能的端点列表将变得无穷无尽 , 而且对用户不是很友好 。所以我们需要一种更有条理和标准化的方式来设计API端点 。
RESTful API最佳实践描述了端点应以资源名称开头 , 而HTTP操作则描述操作 。现在我们得到:
  • POST api.com/authors
  • GET api.com/authors/3
如果我们想访问ID为 3 的作者曾经写过的所有书籍怎么办?对于这种情况 , RESTful API也有解决办法:
  • GET api.com/authors/3/books
最后 , 如果您要为ID为 3 的作者删除ID为 5 的书 , 该怎么办?同样 , 让我们遵循相同的结构化方法来形成以下端点:
  • DELETE api.com/authors/3/books/5
简而言之 , 利用HTTP操作和资源映射的结构化方式来形成易于理解的端点路径 。这种方法的最大优点是 , 每个开发人员都了解RESTful API的设计方式 , 他们可以立即使用API , 而不必阅读你的每个端点的文档 。
3.使用复数资源资源应始终使用其复数形式 。为什么?假设你要检索所有作者 。因此 , 你将调用以下端点:GET api.com/authors 。
当你读取请求时 , 你无法判断API响应是否只包含一个或所有作者 。因此 , API端点应该使用复数资源 。
4.正确使用状态码状态码在这里不只是为了好玩 , 它们有一个明确的目的 , 状态码通知客户端请求的成功 。


推荐阅读