Swagger Editor进行API设计

简介: Swagger Editor进行API设计

swagger是广受欢迎的Restful API设计工具之一,能够方便有效地进行API的设计、共享、管理和测试。

很多时候的使用场景是在服务中集成swagger-ui通过注解来编辑API,通过程序自动生成对应的API,这种方式对代码有一定的侵入性,在共享上也稍显不足,而且这在于你已经想清楚了API应该是如何实现的。实际上在设计阶段,swagger还提供了Swagger  Editor工具用于方便地进行API文档的编写和导出分享。

一、安装Swagger Editor

1、配置node环境

Swagger使用node编写,所以在安装使用之前需要先进行node环境的配置,安装好node和npm,node和npm的安装教程网上自行百度。特别提一下,如果下载的速度比较慢,可以更换npm镜像:

npm install -g cnpm --registry=https://registry.npm.taobao.org

2、安装http-server

npm install -g http-server

3、下载swagger-editor并解压缩

4、进入swagger-editor的根目录,执行http-server

5、访问localhost:8080就可以看到swagger-editor的页面了

二、Swagger-Editor的使用

Swagger-Editor 支持yaml格式和Open API 3两种格式,通过“Edit”Tab菜单可以随时进行转换。

同时,支持从URL、从文件中导入,也支持导出称yaml文件或者json格式的文件,还可以十分方便地生成各种形式的server端代码和client端代码,可谓利器。

swagger的语法请参照官方文档,以下是一个简单的案例描述:

swagger: '2.0'            
info:
  description: >-         
    This is a sample server Petstore server.  You can find out more about    
    Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net,
    #swagger](http://swagger.io/irc/).      For this sample, you can use the api
    key `special-key` to test the authorization     filters.
  version: 1.0.0          
  title: Swagger Petstore 
  termsOfService: 'http://swagger.io/terms/'
  contact:
    email: apiteam@swagger.io
  license:
    name: Apache 2.0
    url: 'http://www.apache.org/licenses/LICENSE-2.0.html'
host: petstore.swagger.io
basePath: /v2
tags:
  - name: pet
    description: Everything about your Pets
    externalDocs:
      description: Find out more
      url: 'http://swagger.io'
schemes:
  - https
  - http
paths:
  /pet:
    post:
      tags:
        - pet
      summary: Add a new pet to the store
      description: ''
      operationId: addPet
      consumes:
        - application/json
        - application/xml
      produces:
        - application/xml
        - application/json
      parameters:
        - in: body
          name: body
          description: Pet object that needs to be added to the store
          required: true
          schema:
            $ref: '#/definitions/Pet'
      responses:
        '405':
          description: Invalid input
definitions:
  Category:
    type: object
    properties:
      id:
        type: integer
        format: int64
      name:
        type: string
  Tag:
    type: object
    properties:
      id:
        type: integer
        format: int64
      name:
        type: string
    xml:
      name: Tag
  Pet:
    type: object
    required:
      - name
      - photoUrls
    properties:
      id:
        type: integer
        format: int64
      category:
        $ref: '#/definitions/Category'
      name:
        type: string
        example: doggie
      photoUrls:
        type: array
        xml:
          name: photoUrl
          wrapped: true
        items:
          type: string
      tags:
        type: array
        xml:
          name: tag
          wrapped: true
        items:
          $ref: '#/definitions/Tag'
      status:
        type: string
        description: pet status in the store
        enum:
          - available
          - pending
          - sold
    xml:
      name: Pet
  ApiResponse:
    type: object
    properties:
      code:
        type: integer
        format: int32
      type:
        type: string
      message:
        type: string
externalDocs:
  description: Find out more about Swagger
  url: 'http://swagger.io'
  • swagger指定了swagger的版本
  • info段主要是对于本API文档相关信息的描述
  • host是指定API对应服务的host,host和basePath、url共同组成了API的访问路径,可以在后续API文档中通过“try it out”功能进行调用验证。
  • basePath指定基础访问路径
  • schemes:制定协议
  • paths是最重要部分,指定了API的mapping路径,通过parameters段指定了API入参,responses段指定了响应体。
  • definitions则是对parameters和responses中提供参数对象作为引用,使得API文档具有层次性。

通过以上方式就可以十分简单快速的编写一个可共享的动态API文档,在实际的使用中,建议使用yaml格式编写API文档,在服务器中部署swagger-editor,用于进行API文档的共享。

相关文章
|
20天前
|
Java 测试技术 API
详解Swagger:Spring Boot中的API文档生成与测试工具
详解Swagger:Spring Boot中的API文档生成与测试工具
32 4
|
5月前
|
Java API 开发者
在Spring Boot中集成Swagger API文档
在Spring Boot中集成Swagger API文档
|
4月前
|
XML 开发框架 .NET
ASP.NET Web Api 如何使用 Swagger 管理 API
ASP.NET Web Api 如何使用 Swagger 管理 API
121 1
|
4月前
|
JSON API 数据格式
【Azure API 管理】是否可以将Swagger 的API定义导入导Azure API Management中
【Azure API 管理】是否可以将Swagger 的API定义导入导Azure API Management中
|
5月前
|
安全 Java API
Nest.js 实战 (三):使用 Swagger 优雅地生成 API 文档
这篇文章介绍了Swagger,它是一组开源工具,围绕OpenAPI规范帮助设计、构建、记录和使用RESTAPI。文章主要讨论了Swagger的主要工具,包括SwaggerEditor、SwaggerUI、SwaggerCodegen等。然后介绍了如何在Nest框架中集成Swagger,展示了安装依赖、定义DTO和控制器等步骤,以及如何使用Swagger装饰器。文章最后总结说,集成Swagger文档可以自动生成和维护API文档,规范API标准化和一致性,但会增加开发者工作量,需要保持注释和装饰器的准确性。
145 0
Nest.js 实战 (三):使用 Swagger 优雅地生成 API 文档
|
6月前
|
前端开发 Java 程序员
Spring Boot (十五): 优雅的使用 API 文档工具 Swagger2
Spring Boot (十五): 优雅的使用 API 文档工具 Swagger2
|
5月前
|
存储 API Go
学习gin-vue-admin之创建api和swagger
学习gin-vue-admin之创建api和swagger
|
6月前
|
Java API Spring
Spring Boot中配置Swagger用于API文档
Spring Boot中配置Swagger用于API文档
|
5月前
|
开发工具
vi编辑器,现在vi\vim是文本文件进行编辑的最佳选择,Vim是vi的加强的版本,兼容vi的所有指令,vim编辑器有三种工作模式,一开始进入的是命令模式,命令模式i是插入的意思,两下y+p复制内容
vi编辑器,现在vi\vim是文本文件进行编辑的最佳选择,Vim是vi的加强的版本,兼容vi的所有指令,vim编辑器有三种工作模式,一开始进入的是命令模式,命令模式i是插入的意思,两下y+p复制内容
|
6月前
|
开发工具
Vim 编辑器:高效文本编辑的瑞士军刀
**Vim 概览:** Vim 是一个功能丰富的文本编辑器,以其高度可定制性著称。文章介绍了 Vim 的高效使用技巧,包括快捷打开文件、命令行模式下的常用命令、查找与替换、删除和复制文本。还讨论了配置 `.vimrc` 文件以自定义设置,如改变 leader 键、设置缩进和高亮,并展示了安装插件如 vim-airline 和 vim-snazzy 的方法。通过这些技巧,用户能提升 Vim 使用效率。
73 5