首页 > 其他分享 >Swagger 管理 API 的一些经验分享

Swagger 管理 API 的一些经验分享

时间:2023-07-15 10:45:23浏览次数:28  
标签:分享 可以 API 文档 设计 UI Swagger

Swagger 是一款开源的 API 设计工具,主要用于构建、设计、编写和使用 RESTful Web 服务。可以帮助开发人员设计和编写 API,以及创建出色的 API 文档。Swagger 是一个强大的开源框架,支持 API 开发全生命周期,包括设计、构建、文档和使用。

Swagger 的核心部分是 Swagger 规范(Specification),它是为 RESTful API 设计的语言无关标准。Swagger 规范定义了 API 的格式,包括 API 的 URL、请求方式、请求参数、返回参数等信息。并且这些信息都可以用 JSON 或 YAML 格式来表示。

Swagger 的另一个重要部分是 Swagger UI,它是一个可视化工具,可以直接在浏览器中查看 API 文档,也可以直接在浏览器中对 API 进行测试。Swagger UI 可以读取 Swagger 规范定义的 API 文档,并生成可交互的 API 文档页面。

除此之外,Swagger 还包括一系列其他工具,如 Swagger Editor(一个在线编辑器,可以用来编写 Swagger 规范)、Swagger Codegen(一个代码生成工具,可以根据 Swagger 规范自动生成客户端和服务器端的代码)等。

下面我们通过一个示例来说明如何使用 Swagger 设计和创建 API。

首先,我们需要创建一个 Swagger 规范,用来描述我们的 API。这个规范可以用 JSON 或 YAML 来编写。例如,我们可以创建一个如下的规范:

swagger: '2.0'
info:
  version: 1.0.0
  title: Simple API
  description: A simple API to learn how to write OpenAPI Specification
schemes:
  - http
paths:
  /users:
    get:
      summary: Returns a list of users
      description: Optional extended description in Markdown.
      produces:
        - application/json
      responses:
        200:
          description: Successful response
          schema:
            type: array
            items:
              type: object
              properties:
                name:
                  type: string
                email:
                  type: string

这个规范定义了一个名为 /users 的 API,这个 API 支持 GET 请求,返回一个用户列表。每个用户对象包含 nameemail 两个属性。

接下来,我们可以使用 Swagger UI 来查看和测试我们的 API。我们只需要在 Swagger UI 中输入我们规范的 URL,然后 Swagger UI 就会自动读取我们的规范,生成可交互的 API 文档页面。在这个页面中,我们可以看到我们所有的 API,以及它们的详细信息,如请求参数、返回参数、请求方式等。我们还可以直接在页面中发送请求,来测试我们的 API。

最后,我们还可以使用 Swagger Codegen 来自动生成代码。例如,我们可以生成用于发送 HTTP 请求的客户端代码,或者生成用于处理 HTTP 请求的服务器端代码。这将大大提高我们的开发效率。

总的来说,Swagger 是一个非常强大的 API 设计工具,它可以帮助我们更好地设计和开发 API,提高我们的开发效率,同时也可以帮助我们生成出色的 API 文档,提高我们的 API 的可用性和易用性。

以下是使用 Swagger 管理 API 的一些最佳实践:

  1. 设计优先:在开始编写代码之前,先设计你的 API。使用 Swagger,你可以用 YAML 或 JSON 格式创建一个 API 的蓝图,详细描述每个端点的功能,包括请求的输入和响应的输出。这种“设计优先”的方法让你可以在编码之前就有一个明确的计划,可以避免以后的混乱和不一致。

  2. 使用定义模型:Swagger 允许你定义数据模型,这些模型可以在你的 API 中重复使用。这意味着你不需要在每个端点的定义中都包含完整的数据结构,而是可以在全局的definitions部分定义一次,然后在各个端点引用。这样可以使你的 Swagger 文件更易于管理和更新。

  3. 利用 Swagger UI:Swagger UI 是一个可视化工具,可以将你的 Swagger 文件转化为一个交互式的 API 文档。这个文档可以让用户直接在浏览器中测试你的 API,看到实际的请求和响应。这是一个很好的方式,可以让你的 API 用户理解和使用你的 API。

  4. 使用版本控制:如同任何其他类型的代码,你的 Swagger 文件也应该放在版本控制系统中。这样可以让你追踪文件的变化,同时也可以让你的团队成员协作编辑和更新文件。如果你使用的是 Git,你可以考虑使用 feature 分支来处理新的功能或者变更,然后使用 pull request 来审查和合并这些改动。

  5. 保持 API 文档最新:API 文档如果过时或者不准确,那么对于 API 用户来说就没有太大的价值。你应该确保你的 Swagger 文件始终反映了你的 API 的最新状态。这可能意味着你需要在你的开发工作流中引入一些步骤,来确保当 API 发生变化时,Swagger 文件也被相应地更新。

  6. 使用 Swagger Codegen:Swagger Codegen 是一个强大的工具,可以从你的 Swagger 文件生成客户端和服务器端的代码。这可以大大减少你的开发工作量,同时也可以确保你的代码与你的 API 定义保持一致。你可以定期运行 Codegen,来确保你的代码始终与 Swagger 文件同步。

  7. 遵循 RESTful 设计原则:虽然 Swagger 可以支持各种各样的 API 设计,但是它最初是为 RESTful API 设计的,因此最好遵循 RESTful 的设计原则,如使用合适的 HTTP 动词,使用状态码来反映操作的结果,等等。

  8. 使用 API 安全性:Swagger 提供了各种方式来定义你的 API 的安全需求,包括基本认证,API 密钥,OAuth2 等等。你应该确保你的 Swagger 文件准确地反映了你的 API 的安全策略。

标签:分享,可以,API,文档,设计,UI,Swagger
From: https://www.cnblogs.com/sap-jerry/p/17555743.html

相关文章

  • 网站搭建流程分享
    购买服务器(新人都有免费的)–>去控制台到实例管理里重置实例密码–>回到概况点击远程连接,然后输入刚刚设置的密码–>去宝塔官方复制Linux面板的安装脚本(看操作系统进行选择)–>粘贴到远程连接台–>安装完成后输入bt14查看地址和账号和记住端口–>安全组添加ATP对应端口和80端口......
  • Amazon SP API拉取分类,五点,描述和关键字
    1.用asin拉取五点,品牌,和分类,每次最多20个(但拉取listing的时候法国和日本站点没有返回asin)$result=$requestReport->applicationreport($account->merchant_id,strtolower($account->site),'/catalog/2022-04-01/items?identifiers=B0BNVT65X4,B0BTBWXLCD,B0BTBYS33P&identi......
  • 【代码分享】使用 terraform, 在 Let's Encrypt 上申请托管在 cloudflare 上的域名对
    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!cnblogs博客zhihuGithub公众号:一本正经的瞎扯运行的流程可以抽象为上图。直接贴代码:letsencrypt.tfterraform{required_providers{acme={source="vancluever/acme"version="......
  • API接口技术开发分享案例,拼多多获得搜索词推荐,接口支持高并发,PHP语言演示案例,支持对语
    ​接口获取数据响应参数接入pinduoduo.item_search_suggest-获得搜索词推荐 公共参数名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)secretString是调用密钥api_name......
  • 【阅读笔记】Rapid, Detail-Preserving Image Downscaling
    Rapid,Detail-PreservingImageDownscaling(快速的图像缩放技术)该论文提出了一种基于卷积滤波器的算法,并确定滤波器的权值,使重要的细节保留在缩小比例的图像。更具体地说,它为更偏离局部图像邻域的像素分配更大的权重。从信息论的角度来看,偏离中心像素的邻域的一些像素数据可能......
  • Swagger避坑指南
    配置swagger报错的排查方向——错误信息——UnabletorenderthisdefinitionTheprovideddefinitiondoesnotspecifyavalidversionfield.PleaseindicateavalidSwaggerorOpenAPIversionfield.Supportedversionfieldsare swagger:"2.0" andthosethat......
  • fastapi框架docs文档Responses去掉默认的异常响应422Validation Error
    fastapi框架原生docs的Responses中会有个默认的422ValidationError响应,但大多数实际开发应该不需要,如何去除呢?我用的方法是用猴子补丁重写fastapi.openapi.util里的get_openapi_path方法,去掉加入默认422的那段代码即可,下面这些http422=str(HTTP_422_UNPROCESSABLE_ENTITY)......
  • Excel宏教程_编程入门自学教程_菜鸟教程-免费教程分享
    教程简介宏语言VisualBasicforApplication(VBA).VisualBasic是windows环境下开发应用软件的一种通用程序设计语言,功能强大,简便易用。Excel宏是Excel中的一种编程功能,它可以让用户录制一系列的操作,以便在需要时自动执行这些操作。用户可以将录制的宏与Excel的单元格、图表、......
  • java官方api中文文档
    Java官方API中文文档介绍Java是一种面向对象的编程语言,它具有简单、可移植和安全等特性。Java官方API(ApplicationProgrammingInterface)是Java的核心库,提供了大量的类和方法,用于开发各种不同类型的应用程序。在本文中,我们将介绍Java官方API中文文档的使用方法,并通过代码示例来说......
  • 2023年度最佳开发工具-Eolink Apikit
    6月30日,「2023掘金技术引力榜」颁奖典礼隆重举行,EolinkApikit荣获「年度最佳开发工具」!开发工具是每个开发者每天都会使用的产品,深度影响着开发者的工作效率和生产力。稀土掘金技术社区汇集了大批优秀的开发者,一起探索和发现产业中最具价值的新技术,找到行业里的引领人物、优秀......