亚洲欧美日韩综合系列在线_91精品人妻一区二区_欧美大肥婆一级特大AA片_九色91视频免费观看_亚洲综合国产精品_av中文字幕在线不卡_久久精品色综合网_看黄色视频的软件_无卡无码高清中文字幕码2024_亚洲欧美日韩天堂网

Swagger Edit 安裝和使用教程

來源:JarunWang 發(fā)布時間:2018-11-01 14:41:56 閱讀量:917

Swagger Edit介紹

Swagger是專門用來管理接口一個工具。在開發(fā)過程中,接口一直是紛爭的聚焦點,能有效管理接口(保存好記錄、及時更新、方便查看、接口測試)。會讓整個項目開發(fā)效率提升很大。 

而其中Swagger Edit是用來編輯接口文檔的小程序,簡單易用。在官網(wǎng)上分為在線編輯和下載代碼線下編輯,兩種編輯方式。Swagger是通過YAML來定義你的接口規(guī)范??梢酝ㄟ^接口文檔幫你生成不同框架的服務(wù)端和客戶端,方便你mock和契約測試。最后導(dǎo)出JSON格式的API規(guī)范,通過Swagger UI對外發(fā)布。下圖就是Swagger Edit界面: 



安裝

1.下載并且安裝node.js 

2. npm install -g http-server 

3. 下載項目https://github.com/swagger-api/swagger-editor 并且解壓。 

4. 進入swagger-editor文件夾。運行http-server命令。 

5. 進入http://127.0.0.1 就可以看到swagger頁面了。


界面介紹

swagger edit界面分為導(dǎo)航欄和工作區(qū)。導(dǎo)航欄是對接口文檔的處理用,下面會介紹到。 

工作區(qū)就是我們花時間最多的地方。分為左右區(qū)域,左邊是編輯區(qū),右邊是顯示區(qū)。左邊編輯區(qū)使用的YAML語法來編寫,只要一修改右邊顯示區(qū)立刻有變化,使用很便捷。進入swagger edit會默認填入一個demo文檔,通常我們只需要修改demo文檔,就能制作我們想要的接口文檔。如下圖: 



編寫完文檔點擊展示區(qū)的excute,進行測試接口。如下圖 



ps:Swagger Edit修改會后會立即把數(shù)據(jù)保存到瀏覽器Local Storage里面,所以不用擔心關(guān)閉瀏覽器就會把數(shù)據(jù)丟失。只要不清緩存,不重裝瀏覽器,這數(shù)據(jù)會一直存在。 



File

這個用來導(dǎo)出/引入接口文件在swagger edit里面進行編輯,也可以輸出YAML/JSON格式。這個如果你是非在線版,編輯一半想下次在編輯,建議先導(dǎo)出備份,避免數(shù)據(jù)丟失。 



convert to YAML

把編輯區(qū)轉(zhuǎn)換成YAML格式。 



Generate Server

把接口文檔生成服務(wù)器文件,導(dǎo)出一個壓縮包,接口文檔生成java、js等服務(wù)器文件。很實用工具,讓你寫少很多代碼。 



導(dǎo)出spring-boot 



導(dǎo)出nodeJS 



Generate Client

生成查看接口文檔。編寫好下一步就是展示。這里可以選擇導(dǎo)出什么格式的接口文檔。 



導(dǎo)出html 



文檔編寫語法

文檔是YAML語法來編輯,這里不解說。這里提供各字段的中文解釋,大家應(yīng)該看的懂。對語法不懂,請查看YAML語法 阮一峰


swagger: '2.0'                      # swagger的版本

info:

  title: 文檔標題

  description:  描述

  version: "v1.0"                   # 版本號

  termsOfService: ""                # 文檔支持截止日期

  contact:                          # 聯(lián)系人的信息

    name: ""                        # 聯(lián)系人姓名

    url: ""                         # 聯(lián)系人URL

    email: ""                       # 聯(lián)系人郵箱

  license:                          # 授權(quán)信息

    name: ""                        # 授權(quán)名稱,例如Apache 2.0

    url: ""                         # 授權(quán)URL

host: api.haofly.net                # 域名,可以包含端口,如果不提供host,那么默認為提供yaml文件的host

basePath: /                         # 前綴,比如/v1

schemes:                            # 傳輸協(xié)議

  - http

  - https


securityDefinitions:                # 安全設(shè)置

  api_key:

    type: apiKey

    name: Authorization             # 實際的變量名比如,Authorization

    in: header                      # 認證變量放在哪里,query或者header

  OauthSecurity:                    # oauth2的話有些參數(shù)必須寫全

    type: oauth2

    flow: accessCode                # 可選值為implicit/password/application/accessCode

    authorizationUrl: 'https://oauth.simple.api/authorization'

    tokenUrl: 'https://oauth.simple.api/token'

    scopes:

      admin: Admin scope

      user: User scope

      media: Media scope

  auth:

    type: oauth2

    description: ""                 # 描述

    authorizationUrl: http://haofly.net/api/oauth/

    name: Authorization             # 實際的變量名比如,Authorization

    tokenUrl:

    flow: implicit                  # oauth2認證的幾種形式,implicit/password/application/accessCode

    scopes:

      write:post: 修改文件

      read:post: 讀取文章


security:                           # 全局的安全設(shè)置的一個選擇吧

  auth:

    - write:pets

    - read:pets


consumes:                           # 接收的MIME types列表

  - application/json                # 接收響應(yīng)的Content-Type

  - application/vnd.github.v3+json


produces:                           # 請求的MIME types列表

  - application/vnd.knight.v1+json  # 請求頭的Accept值

  - text/plain; charset=utf-8

tags:                               # 相當于一個分類

  - name: post  

    description: 關(guān)于post的接口


externalDocs:

  description: find more info here

  url: https://haofly.net


paths:                              # 定義接口的url的詳細信息

  /projects/{projectName}:          # 接口后綴,可以定義參數(shù)

    get:

      tags:                         # 所屬分類的列表

        - post  

      summary: 接口描述              # 簡介

      description:                  # 詳細介紹

      externalDocs:                 # 這里也可以加這個

        description:

        url:

      operationId: ""               # 操作的唯一ID

      consumes: [string]            # 可接收的mime type列表

      produces: [string]            # 可發(fā)送的mime type列表

      schemes: [string]             # 可接收的協(xié)議列表

      deprecated: false             # 該接口是否已經(jīng)棄用

      security:                     # OAuth2認證用

        - auth: 

            - write:post

            - read: read

      parameters:                   # 接口的參數(shù)

        - name: projectName         # 參數(shù)名

          in: path                  # 該參數(shù)應(yīng)該在哪個地方,例如path、body、query等,但是需要注意的是如果in body,只能用schema來指向一個定義好的object,而不能直接在這里定義

          type: string              # 參數(shù)類型

          allowEmptyValue: boolean          # 是否允許為空值

          description: 項目名        # 參數(shù)描述

          required: true            # 是否必須

          default: *                # 設(shè)置默認值

          maximum: number           # number的最大值

          exclusiveMaximum: boolean # 是否排除最大的那個值

          minimum: number           # number的最小值

          exclusiveMinimum: boolean

          maxLength: integer        # int的最大值

          minLength: integer

          enum: [*]                 # 枚舉值

          items:                    # type為數(shù)組的時候可以定義其項目的類型

        - $ref: "#/parameters/uuidParam"   # 這樣可以直接用定義好的

      responses:                    # 設(shè)置響應(yīng)

        200:                        # 通過http狀態(tài)來描述響應(yīng)

          description: Success      # 該響應(yīng)的描述

          schema:                   # 定義返回數(shù)據(jù)的結(jié)構(gòu)

            $ref: '#/definitions/ProjectDataResponse'  # 直接關(guān)聯(lián)至某個model


  /another: # 另一個接口

      responses:

        200:

            description:

            schema:

              type: object

              properitis:

                data:

                    $ref: '#/definitions/User' # 關(guān)聯(lián)


definitions:            # Model/Response的定義,這里的定義不強制要求返回數(shù)據(jù)必須和這個一致,但是在swagger-ui上,會展示這里面的字段。

  Product:              # 定義一個model

    type: object        # model類型

    properties:         # 字段列表

      product_id:       # 字段名

        type: integer   # 字段類型

        description:    # 字段描述

      product_name:

        type: string

        description: 

  ProjectDataResponse:

    type: object

    properties:

        data:

            $ref: '#/definitions/ProjectResponse'  # model之間的關(guān)聯(lián),表示在data字段里面包含的是一個ProjectResponse對象

parameters:             # 可以供很多接口使用的params

  limitParam:

    name: limit

    in: query

    description: max records to return

    required: true

    type: integer

    format: int32

responses:              # 可以供很多接口使用的responses

  NotFound:

    description: Entity not found.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

參考 

Swagger官網(wǎng):http://swagger.io/ 

Swagger Github:https://github.com/swagger-api 

Swagger Editor在線demo:http://editor.swagger.io/#/ 

Swagger UI在線demo:http://petstore.swagger.io/


Swagger UI及 Swagger editor教程 API文檔搭配 Node使用

swagger ui 是一個在線文檔生成和測試的利器,目前發(fā)現(xiàn)最好用的.為啥好用呢?打開 demo, 支持API自動生成同步的在線文檔些文檔可用于項目內(nèi)部API審核方便測試人員了解 AP...

--------------------- 

作者:JarunWang 

來源:CSDN 

原文:https://blog.csdn.net/rth362147773/article/details/78992043 

版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請附上博文鏈接!


分享:
評論:
你還沒有登錄,請先