假设你请承包商从零开始建造一座房子,你肯定期望他们交付最高质量的房子。他们必须通过检查、遵守安全规范并遵循项目中约定的要求。因为建房子可容不得走捷径。如果承包商经常走捷径,他们的声誉会受到影响,从而失去客户。其实,开发 API 就像建房子一样。

构建 API 时,在将其推向市场之前,创建一个完全功能的最终产品对于开发人员想要使用和信任至关重要。如果一切顺利,你将有希望扩展你的 API 策略,但是如果没有正确的流程,则可能在错误基础上构建 API 程序,并使长期成功面临风险。所有这些都始于制定正确计划。

1、计划

就像承包商在开始新建筑物时依赖蓝图一样,你需要在开始建构 API 之前制定计划。不要让你的 API 成为比萨斜塔。幸运的是,有一个 API 架构师的蓝图,OpenAPI 规范就是其中之一。OpenAPI 规范旨在提供一种标准格式,使开发人员可以创建易于跨国界、技术堆栈和行业理解和使用的 API。

试图使用 OAS 集成 API 的人应该能够分解和理解 API 提供的内容。就像蓝图清晰地说明了建筑物应该如何建造一样,OpenAPI 规范为API的构建提供了明确的设计结构。在任何开发之前,它让业务和技术利益相关者知道将包含在 API 中的内容。这个过程被称为“先设计后开发”的方法,其中 API 规范处于项目前沿。从一开始遵循 OpenAPI 规范也使得开发人员可以更快地构建出符合要求的 API,因为所有必要信息都已经列出来了。

2、建构

你花费了数小时、数天、数周甚至数月来完善你的 API 设计,现在终于是开始构建的时候了。建造房屋时,拥有适合项目的正确团队和正确工具非常重要。同样,在构建 API 时也是如此。有许多工具可以帮助你以简单高效的方式构建出你的 API。

3、检查

这一步对于成功至关重要。无论是家庭还是 API,都需要进行测试和检查以发现错误和缺陷。在进行房屋检查时,通常需要满足一系列要求才能通过检查。有很多公司不会测试他们的 API。同样,在新房建设上我们也假定建筑师应该确保施工质量良好,但实际情况并非总是如此。创建“足够好”与“完美”的东西各有利弊。在软件方面,“足够好”的第一个产品可以被认为是完全可接受的工作流程,但你应该确保它“足够好”以便使用。

4、描述和文档

太棒了,你已经完成了你的项目。它已经通过检查并且表现出色,现在你准备将其推向市场。 你的第一反应可能是只需将其发布并让 API 自己说话,还不行!为最终用户记录你的项目非常重要。 在我们房屋示例中,你需要描述平方英尺、所在社区、卧室和浴室数量、厨房电器类型、厨房美丽的自然光线等信息。 图片可能会欺骗人,因此为潜在买家详细说明至关重要。对于你的 API 也是如此。 编写文档很困难,但提供易于使用的 API 所带来回报值得投资。 引导他们浏览选项,以便他们不必做出假设,并在假设不正确时感到沮丧。

5、投放市场

你的成品已经经过测试和检查,准备向公众展示!通过创建一个建立在坚实基础上并且有良好文档记录的东西,这样任何看到它的人都会知道里面究竟是什么。无论你是在建造房屋还是 API,请创造出让自己感到骄傲的东西。发布一些能够引起人们注意的东西,这是你创造出惊人之物的机会,在这个环节也要多花点心思。

Eolink 翻译】原文链接:《How to Build an API From The Ground Up》

如何从零开始构建 API ?的更多相关文章

  1. 用webpack4从零开始构建react脚手架

    用webpack4从零开始构建react脚手架 使用脚手架 git clone git@github.com:xiehaitao0229/react-wepack4-xht.git` `cd reac ...

  2. 尝试从零开始构建我的商城 (一) :使用Abp vNext快速一个简单的商城项目

    尝试从零开始构建我的商城 (一) :使用Abp vNext快速搭建一个简单的项目 前言 GitHub地址 https://github.com/yingpanwang/MyShop 此文目的 本文将尝 ...

  3. 从零开始构建并编写神经网络---Keras【学习笔记】[1/2]

    Keras简介:   Keras是由纯python编写的基于theano/tensorflow的深度学习框架.   Keras是一个高层神经网络API,支持快速实验,能够把你的idea迅速转换为结果, ...

  4. lumen 构建api(dingo api)

    什么是 API API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力, ...

  5. 从零开始构建一个的asp.net Core 项目

    最近突发奇想,想从零开始构建一个Core的MVC项目,于是开始了构建过程. 首先我们添加一个空的CORE下的MVC项目,创建完成之后我们运行一下(Ctrl +F5).我们会在页面上看到"He ...

  6. 从零开始构建一个的asp.net Core 项目(二)

    接着上一篇博客继续进行.上一篇博客只是显示了简单的MVC视图页,这篇博客接着进行,连接上数据库,进行简单的CRUD. 首先我在Controllers文件夹点击右键,添加->控制器 弹出的对话框中 ...

  7. Spring Boot中使用Swagger2构建API文档

    程序员都很希望别人能写技术文档,自己却很不愿意写文档.因为接口数量繁多,并且充满业务细节,写文档需要花大量的时间去处理格式排版,代码修改后还需要同步修改文档,经常因为项目时间紧等原因导致文档滞后于代码 ...

  8. 从零开始构建一个centos+jdk7+tomcat7的docker镜像文件

    从零开始构建一个centos+jdk7+tomcat7的镜像文件 centos7系统下docker运行环境的搭建 准备centos基础镜像 docker pull centos 或者直接下载我准备好的 ...

  9. springboot+mybatis-puls利用swagger构建api文档

    项目开发常采用前后端分离的方式.前后端通过API进行交互,在Swagger UI中,前后端人员能够直观预览并且测试API,方便前后端人员同步开发. 在SpringBoot中集成swagger,步骤如下 ...

  10. ASP.NET WebAPI构建API接口服务实战演练

    一.课程介绍 一.王小二和他领导的第一次故事 有一天王小二和往常一下去上早班,刚吃完早餐刚一打开电脑没一会儿.王小二的领导宋大宝走到他的面前,我们现在的系统需要提供服务给其他内部业务系统,我看你平时喜 ...

随机推荐

  1. 如何用Python对股票数据进行LSTM神经网络和XGboost机器学习预测分析(附源码和详细步骤),学会的小伙伴们说不定就成为炒股专家一夜暴富了

    前言 最近调研了一下我做的项目受欢迎程度,大数据分析方向竟然排第一,尤其是这两年受疫情影响,大家都非常担心自家公司裁员或倒闭,都想着有没有其他副业搞搞或者炒炒股.投资点理财产品,未雨绸缪,所以不少小伙 ...

  2. ES6中的解构赋值(数组,对象,嵌套,默认值)

    解构赋值 通过解构赋值,可以快速从对象或者数组中取出属性或者数值. 解构赋值 可以通过定位到数组或者对象的某一个位置,将值直接赋给一个或多个变量. const arr = ['dasha', 'ers ...

  3. 【算法数据结构专题】「延时队列算法」史上手把手教你针对层级时间轮(TimingWheel)实现延时队列的开发实战落地(上)

    承接上文 承接之前的[精华推荐 |[算法数据结构专题]「延时队列算法」史上非常详细分析和介绍如何通过时间轮(TimingWheel)实现延时队列的原理指南],让我们基本上已经知道了「时间轮算法」原理和 ...

  4. 二进制安装Kubernetes(k8s) v1.22.10 IPv4/IPv6双栈

    二进制安装Kubernetes(k8s) v1.22.10 IPv4/IPv6双栈 Kubernetes 开源不易,帮忙点个star,谢谢了 介绍 kubernetes二进制安装 后续尽可能第一时间更 ...

  5. 粘包,自定义协议,struct模块,粘包解决终极大招

    粘包: 1.粘包问题出现的原因: (udp不会出现粘包问题) 1.1.tcp是流式协议,数据像水流一样黏在一起,没有任何边界区分 1.2.收数据没收干净,有残留,就会下一次结果混淆在一起去(客户端接受 ...

  6. Java设计模式 —— 原型模式

    7 原型模式 7.1 原型模式概述 Prototype Pattern:使用原型实例指定待创建对象的类型,并且通过复制这个原型来创建新的对象. 原型模式的工作原理:将一个原型对象传给创建者,该创建者通 ...

  7. 介绍一下js垃圾回收机制

    JavaScript中的垃圾回收机制负责自动管理内存,回收不再使用的对象所占用的内存空间.在JavaScript中,开发者不需要显式地分配和释放内存,垃圾回收器会自动完成这些操作.以下是关于JavaS ...

  8. spring事务里面开启线程插入,报错了是否会回滚?

    1.前言 一道非常有意思的面试题目.大概是这样子的,如果在一个事务中,开启线程进行插入更新等操作,如果报错了,事务是否会进行回滚 2.代码 示例1 @RequestMapping("/tes ...

  9. 在Vue中使用键盘事件,回调函数被执行两次

    暂时先不考虑v-for的key,查看下面的代码 <template> <div> <form @submit.prevent="addTask"> ...

  10. ChatGPT API接口编程基础与使用技巧

    总结/朱季谦 趁着这周末空闲时间,在研读完OpenAi官网文档的基础上,及时总结了这篇<ChatGPT API接口编程基础与使用技巧>. 本文大部分内容是围绕编程方面,包括ChatGPT模 ...