如何从零开始构建 API ?

news2024/11/25 14:30:04

假设你请承包商从零开始建造一座房子,你肯定期望他们交付最高质量的房子。他们必须通过检查、遵守安全规范并遵循项目中约定的要求。因为建房子可容不得走捷径。如果承包商经常走捷径,他们的声誉会受到影响,从而失去客户。其实,开发 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 翻译】原文链接:https://swagger.io/resources/articles/how-to-build-an-api-from-the-ground-up/


Apikit_API协作管理平台_API文档管理-EolinkAPIKit是Eolink旗下结合API接口管理、 API 设计、文档管理、自动化测试、监控、研发管理和团队协作的一站式 API 生产平台,让用户在安全可控的环境下完成 API 管理的多人协作任务,帮助企业提升开发效能,降低运维成本。https://www.eolink.com/apikit

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/616424.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

jmeter-分布式部署之负载机的设置

目录 引言 一、windows下负载机的配置(执行机) 二、linux下负载机的配置 三、错误总结 写在最后 引言 今天想和大家聊一下关于jmeter分布式部署中负载机的设置问题。作为一个自动化测试工具,jmeter在性能测试方面有着很强的优势&#x…

NLP(3) Text Classification

文章目录 OverviewText classification 的主要任务Topic ClassificationSentiment AnalysisNative Language IdentificationNatural Language Inference 如何构造 Text ClassifierClassification AlgorithmsBias - Variance Balance朴素贝叶斯Logistic RegressionSupport Vecto…

chatgpt赋能python:Python如何倒序输出:一步步教你实现

Python如何倒序输出:一步步教你实现 Python是一种通用编程语言,具有快速开发、易学易用等诸多优点,在大数据、人工智能、科学计算等领域得到广泛应用。其中,倒序输出是Python编程中非常常见的操作。那么,如何在Python…

STM32F407 移植 FreeRTOS

0. 实验准备 本实验是基于正点原子 STM32F407ZG 探索者开发板完成的,所以需要一个STM32F407ZG 探索者开发板 用于移植的基础工程(下面会讲) FreeRTOS源码(下面会讲) 1. FreeRTOS移植 1.1 移植前准备 1.1.1 基础工程…

SpringCloud Gateway网关集成与配置

📝 学技术、更要掌握学习的方法,一起学习,让进步发生 👩🏻 作者:一只IT攻城狮 ,关注我,不迷路 。 💐学习建议:1、养成习惯,学习java的任何一个技术…

桶装水站点APP小程序管理系统 方便快捷送水上门

夏天到了,又到了疯狂饮水的季节了,桶装饮用水是日常生活办公环境中必不可少的产品,这种必需品消耗快隔三差五就要购买一次。一般人都是通过电话预定的方式来购买桶装水,商家必须保证随时随地有人接听电话才能避免遗漏客户&#xf…

系列六、MongoDB文档相关操作

一、插入文档 1.1、单条插入 # 语法 db.集合名称.insert({json数据})# 案例 db.user.insert({"name":"张三","age":23,"birthday":"1997-07-07" }) 1.2、多条插入 # insertMany语法: db.collection.insertMan…

Docker 的数据管理和Dockerfile

-------------------------------------------Docker 的数据管理-------------------------------------------- 管理 Docker 容器中数据主要有两种方式:数据卷(Data Volumes)和数据卷容器(DataVolumes Containers)。 …

ClickHouse集群安装与部署

这是一篇关于讲解如何安装部署ClickHouse集群的参考文章,希望通过此,大家都能了解ClickHouse,都能学会安装配置ClickHouse以及它的使用。 什么是ClickHouse? ClickHouse是Yandex于2016年开源的列式存储数据库(DBMS),主…

【String字符串之前篇】

目录 1.什么是字符串2.常用字符串的写法3.String字符串的底层原理3.字符串的比较3.1双等号和equals3.2 compareTo(String s) 方法3.3compareToIgnoreCase方法 4.String查找方法5.字符串的转换5.1字符串与数字转换5.2 大小写转换5.3 字符串与数组的转换 1.什么是字符串 对于&quo…

项目经理提升领导力的6个重点

1、以身作则 作为团队的领导者,要想更好地调动团队的积极性,最直接简单的方法就是以身作则,做团队的榜样。在要求团队成员之前,自己先做好,关键时候需身先士卒。 项目经理提升领导力的6个重点 2、共同目标 项目团队的共…

DataSecurity Plus:数字化时代的数据安全护卫者

引言: 在数字化时代,数据成为企业和个人生活中不可或缺的资产。然而,随之而来的是日益增长的数据安全威胁。为了保护数据的机密性、完整性和可用性,数据安全解决方案——DataSecurity Plus应运而生。本文将深入探讨DataSecurity …

嵌入式Android系统耳机驱动基本知识

开发项目的时候,接手的第一个驱动就是android平台下耳机的插拔检测和按键检测​。这部分涉及的硬件知识比较简单,但是软件上对中断的处理,软件检测的鲁棒性,都有比较高的要求,涉及到驱动开发中经常使用的中断申请&…

Linux下Python脚本的编写解析fio测试log(四)

在我们平常的测试盘的过程中,fio是一款业界最为通用的工具,通过Fio可以只知道一个盘具体的带宽,iops,延迟等等.比如下面这段fio的log 这里边需要拿出log里的一些参数 做成表格 如下: 下面说下如何用Python解析log并做成表格 1 同样是用到Python中文件…

【裸机驱动LED】使用汇编代码驱动LED(二)—— 汇编代码编写篇

上一部分我们已经整理出了所需寄存器的基地址、初始值,因为我们要给寄存器赋值,其实就是向指定地址写入内容。下面所有用到的基地址和初始化值都在上一篇总结好了。 【裸机驱动LED】使用汇编代码驱动LED(一)—— 寄存器解析篇_仲…

Nginx+Tomcat负载均衡,动静分离

文章目录 一.Nginx应用1.1Nginx负载均衡实现原理1.2Nginx动静分离实现原理 二.NginxTomcat负载均衡、动静分离(七层实例) 一.Nginx应用 Nginx是一款非常优秀的HTTP服务软件 支持高达50000个并发连接数的响应拥有强大的静态资源处理能力运行稳定内存、C…

spring.factories

Spring Boot 如何管理第三方Bean 首先抛出一个问题:如果想要被Spring容器管理的Bean的路径不再Spring Boot 的包扫描路径下,怎么办呢?也就是如何去加载第三方的Bean 呢?换句话说:在 Spring Boot 项目中,如果你想要被 …

使用 PicX 创建免费的图床神器

写博客文章时,图片的上传和存放是一个问题,我们也许会在不同的平台发布同一篇文章,这样一来每个平台都要上传图片。为了解决这些问题,做法是把图片统一上传到一个在线的第三方静态资源库中,我们把这个资源库称为图床。…

【博学谷学习记录】超强总结,用心分享丨人工智能 AI项目 ROUGE评估算法简记

目录 ROUGE核心思想评价标准ROUGE-NROUGE-L ROUGE ROUGE的全称是Recall-Oriented Understudy for Gisting Evaluation, 是一种基于召回率指标的评价算法. 核心思想 由多个专家分别生成人工摘要, 构成标准摘要集. 将模型生成的自动摘要和人工摘要做对比, 通过统计两者之间重叠…

C++ 结构体声明(定义)以及不同写法的差异

定义方式总结 在C中,结构体(struct)的定义主要有多种形式,,你还可以在定义结构体时直接初始化它的成员,或者在定义后创建结构体的实例。以下是一些例子: 定义并初始化结构体: str…