想象一下,你是一位建筑师,站在空旷的土地上。你不会在没有蓝图的情况下就开始砌砖,对吧?同样的原则也适用于API开发。我过去使用代码优先的方法,先编写代码,然后在之后再编写文档,直到我学习了设计优先的方法。设计优先的方法是在编写任何代码之前创建一个详细的API定义。
在我们深入探讨之前,让我们规划一下我们的目标。可以把这看作是你的API规划路线图:
你将学到什么:
API规划不仅仅是关于技术规范——它也是关于构建其他人会喜欢使用的产品。这就像设计一栋房子,每个房间都有其用途,并与其他房间逻辑地连接起来。
需要回答的关键问题:
将API规划比作绘制杰作:
代码优先方法是指直接跳入编码,在编写API结构文档或设计之前创建功能。当我开始构建API时,我是一个代码优先的拥护者。以下是我学到的东西:
<code>// 第一天:“这看起来很简单!” app.get('/users', getUsers); // 第二周:“哦,等等,我需要过滤……” app.get('/users', authenticateUser, validateQuery, getUsers); // 第三周:“也许我应该更好地规划一下……”</code>
快速提示 ✨:代码优先适用于原型,但在进行过程中要记录你的决策!
工作原理
优点
挑战
设计优先方法强调在编写任何代码之前规划和定义API的结构。它让每个人都步调一致。在商定API定义后,利益相关者(例如测试人员和技术编写者)可以与开发人员并行工作。
工作原理
优点
挑战
代码优先
设计优先
如果满足以下条件,请选择代码优先:
如果满足以下条件,请选择设计优先:
步骤1:定义API的目的
在深入研究端点和方法之前,请回答以下基本问题:
示例目的陈述:
<code>// 第一天:“这看起来很简单!” app.get('/users', getUsers); // 第二周:“哦,等等,我需要过滤……” app.get('/users', authenticateUser, validateQuery, getUsers); // 第三周:“也许我应该更好地规划一下……”</code>
步骤2:识别核心资源
将资源视为API中的名词。对于我们的电子商务示例:
主要资源:
资源关系:
<code>// 第一天:“这看起来很简单!” app.get('/users', getUsers); // 第二周:“哦,等等,我需要过滤……” app.get('/users', authenticateUser, validateQuery, getUsers); // 第三周:“也许我应该更好地规划一下……”</code>
步骤3:定义操作
现在考虑用户需要对这些资源执行哪些操作(动词):
<code>此API使电子商务平台能够实时管理多个仓库的库存,确保准确的库存水平并防止超卖。</code>
步骤4:规划数据模型
定义清晰一致的数据结构:
<code>产品 └── 库存 └── 仓库 └── 库存变动</code>
步骤5:规划身份验证和安全性
从一开始就考虑安全性:
步骤6:编写API文档
创建全面的文档:
API概述
端点文档
用例
代码优先和设计优先方法在API开发中都很有价值。关键是选择符合项目需求、团队规模和长期目标的方法。最终,无论你选择代码优先还是设计优先方法,目标都是创建一个开发人员喜欢使用的API。有时,旅程不如目的地重要,但拥有一张好的地图可以使旅程更容易!
在我们即将推出的博客系列中,我们将通过构建CollabSphere(一个实时聊天系统)将这些原则付诸实践。你将亲眼目睹我如何将代码优先项目转变为设计优先杰作。
即将推出的内容预览:
以上是API 规划指南:代码优先 VS 设计优先方法的详细内容。更多信息请关注PHP中文网其他相关文章!