技术·文档 | 标准API文档规范 1.0

简介: 技术·文档 | 标准API文档规范 1.0

背景

随着业务的发展,支撑平台的项目也是越来越多。

同时,为了让业务系统更加清晰,会从整个平台项目的架构体系,对系统业务水平拆分、垂直分层,产生了一系列平台和子系统,并使用接口进行数据交互。

伴随着业务的发展,接口文档会越来越多。

那么痛点在哪里?

代码和文档不匹配,代码接口更新,文档不更新,且接口文档内容和形式百花齐放,不便于理解。

撸码一分钟,对接三小时

为了解决这些痛点,我们定义了如下接口文档规范,用于编写API接口时的指导,以便于你写出良好规范的API文档。

API文档概述

什么是API

API(Application Programming Interface)即应用程序编程接口,是一些预先定义的函数,是连接客户端与服务端的桥梁,可以为应用程序与开发人员提供基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

什么是API文档

API文档是面向API使用者对API功能、用法和版本等信息等详尽描述,API文档增加了API等易用性,是API开发者面向使用者对公开约束。

什么是好的API文档

好的API接口文档对于使用者来说必须满足以下几个点:

易学习

有完善的文档及提供尽可能多的示例,文档要遵循行业和国际标准,让有经验和背景的调用者可以快速上手。

例如,定义国家代码,要使用ISO-3316国家代码标准中的国家代码,中国是“CN”,而不是自己造一个“CHI”,以免造成误解。

易使用

对于读者来说,文档没有复杂的程序和业务细节,只要易于读者学习即可。

灵活的API允许按字段排序、可自定义分页、 排序和筛选等。一个完整的API意味着被期望的功能都包含在内。

难误用

详细的错误提示,用户可从文档的阅读中了解API的使用方法和误区,不会在调用API的时候出现“惊喜”。

兼容性

API的升级要考虑向下兼容,文档也要考虑前后一致。

例如尽量避免在版本1是必填的参数,在版本2改为非必填,等等。

实时性

文档也相应地要考虑随着版本的更新而更新,且与服务一致。

避免客户端根据老的文档而请求新的接口而造成与预期不一致。

API文档目录

下面定义了标准的接口文档目录格式:

1.修订历史
2.接口描述
3.服务接入
    基本信息
    服务信息
4.请求和返回参数
    请求参数
    返回参数
5.成功和异常示例
    成功示例
        请求参数
        返回参数
    异常示例
        请求参数
        返回参数
6.状态码
    错误码
    业务码

API文档示例

下面提供了标准的接口文档的简要示例,可以在创建API文档的时候参考此结构和示例。

修订历史

以下为本文档对修订历史,倒序排列

原则上,无论API发生了任何定义、约束和功能上的变更,都应该体现在以下修订历史中,同时强烈建议在接口发生变更以后升级版本,并尽可能保证向下兼容(即如果客户端没有更新API也可以正常使用之前的功能)。


接口描述

以下为文档的概要描述,简要说明了此接口提供的能力、覆盖的业务场景、相关的系统角色等。

服务接入

此处描述了接口的形式(RPC、HTTP等)、接口的地址、客户端等配置等信息。

服务信息

如果是请求RPC接口,需要增加如下描述。

• 服务AppId:AppPAyService

• 接口:com.example.pay.TransferService

• 方法:transfer

• maven依赖

开发联调时使用SAPSHOT版本,上UAT前需要更换最新RELEASE版本
<dependency>
  <groupId>com.example.pay</groupId>
  <artifactId>pay-transfer</artifactId>
  <version>最新RELEASE版本</version>
</dependency>

• 接口定义

public interface TransferService {
    Response<Result> transfer(Request request);
}

详细内容方位:

技术·文档 | 标准API文档规范 1.0


目录
相关文章
|
4天前
|
弹性计算 API 开发工具
揭秘Python与阿里云API的神秘邂逅!流式处理的魔法之旅,一场颠覆想象的技术盛宴!
【8月更文挑战第15天】在数字世界的广阔舞台上,Python与阿里云API的相遇,就像是一场命中注定的邂逅。它们携手共舞,为我们带来了流式处理的魔法之旅。本文将揭开这场神秘邂逅的面纱,带你领略Python与阿里云API之间的奇妙互动。让我们一起踏上这场颠覆想象的技术盛宴,探索流式处理的无限可能!
22 7
|
3天前
|
Java API 数据中心
百炼平台Java 集成API上传文档到数据中心并添加索引
本文主要演示阿里云百炼产品,如何通过API实现数据中心文档的上传和索引的添加。
|
9天前
|
缓存 JSON 监控
构建一个健壮的API:设计原则与技术实践
【8月更文挑战第10天】构建一个健壮的API需要遵循一系列的设计原则和技术实践。从明确API目标与范围、遵循RESTful原则、注重安全性设计、优化性能、实施监控与日志记录到版本控制,每一步都至关重要。通过不断迭代和优化,我们可以打造出更加稳定、高效、易用的API,为用户提供更好的服务体验。
|
22天前
|
安全 物联网 API
API技术之身份认证
【7月更文挑战第29天】身份认证是API安全的核心,确保API可信可控。
|
4天前
|
缓存 测试技术 API
电商平台 API 接入技术要点深度剖析
这段内容详述了电商API接入的关键步骤:首先,深入了解API文档以明确功能权限及数据格式;其次,选择恰当的接入方式如RESTful API或RPC;接着实施身份验证与授权保障数据安全;处理数据传输与异常情况;利用缓存和并发提升性能;采用加密手段和限流策略加强安全防护;持续监控API状态并记录日志;最后,通过充分测试确保稳定性和进行版本管理以适应API迭代。
|
29天前
|
人工智能 自然语言处理 API
深度融合与创新:Open API技术促进AI服务生态构建
【7月更文第21天】在数字化转型的浪潮中,人工智能(AI)已从概念探索走向实际应用,深刻改变着各行各业。Open API(开放应用程序接口)作为连接技术与业务的桥梁,正成为推动AI服务普及和生态构建的关键力量。本文将探讨Open API技术如何通过标准化、易用性和灵活性,加速AI服务的集成与创新,构建一个更加丰富多元的AI服务生态系统。
44 2
|
30天前
|
存储 JSON 安全
OAuth2与JWT在API安全中的角色:技术深度解析
【7月更文挑战第20天】OAuth2和JWT作为两种重要的安全协议,在API安全中发挥着不可或缺的作用。OAuth2通过提供灵活的授权框架,实现了对资源的细粒度访问控制;而JWT则通过其紧凑性和自包含性,确保了身份验证和信息传输的安全性。在实际应用中,将OAuth2和JWT结合使用,可以构建出既强大又安全的API服务,为用户提供更加安全、可靠和便捷的数字体验。
|
1月前
|
安全 Java API
Nest.js 实战 (三):使用 Swagger 优雅地生成 API 文档
这篇文章介绍了Swagger,它是一组开源工具,围绕OpenAPI规范帮助设计、构建、记录和使用RESTAPI。文章主要讨论了Swagger的主要工具,包括SwaggerEditor、SwaggerUI、SwaggerCodegen等。然后介绍了如何在Nest框架中集成Swagger,展示了安装依赖、定义DTO和控制器等步骤,以及如何使用Swagger装饰器。文章最后总结说,集成Swagger文档可以自动生成和维护API文档,规范API标准化和一致性,但会增加开发者工作量,需要保持注释和装饰器的准确性。
Nest.js 实战 (三):使用 Swagger 优雅地生成 API 文档
|
1月前
|
监控 Kubernetes 数据可视化
API关键技术-日志审计技术
【7月更文挑战第19天】日志审计的目的是通过审计策略和日志分析,发现系统在某一时间段内发生的异常事件,通过事件关联和追溯,分析与事件相关联的内外部人员、系统、事件涉及的范围等。