GoFrame WEB服務(wù)開發(fā)-接口文檔

2022-04-14 09:22 更新

?GoFrame?框架支持全自動化的接口文檔生成,保障代碼與接口文檔同步維護,自動生成的接口文檔采用的是標準的?OpenAPIv3?協(xié)議。在介紹?OpenAPIv3?協(xié)議之前,建議您先閱讀了解框架的規(guī)范路由特性:路由注冊-規(guī)范路由 。


一、OpenAPIv3

詳細的?OpenAPIv3?協(xié)議介紹請參考:https://swagger.io/specification/

二、g.Meta元數(shù)據(jù)

接口的元數(shù)據(jù)信息可以通過為輸入結(jié)構(gòu)體 ?embedded ?方式嵌入 ?g.Meta? 結(jié)構(gòu),并通過 ?g.Meta? 的屬性標簽方式來實現(xiàn)。

三、常用協(xié)議標簽

輸入輸出結(jié)構(gòu)體中的屬性的標簽完整支持?OpenAPIv3?協(xié)議,因此只要增加了對應的協(xié)議標簽,那么生成的?OpenAPIv3?接口信息中將會自動包含該屬性。

大部分的標簽屬性已經(jīng)被?Server?組件自動生成,開發(fā)者需要手動設(shè)置的標簽不多。常見的標簽包括:

常見OpenAPIv3標簽
說明
備注
path 結(jié)合注冊時的前綴共同構(gòu)成接口URI路徑 用于g.Meta標識接口元數(shù)據(jù)
tags 接口所屬的標簽,用于接口分類 用于g.Meta標識接口元數(shù)據(jù)
method 接口的請求方式:GET/PUT/POST/DELETE...(不區(qū)分大小寫) 用于g.Meta標識接口元數(shù)據(jù)
deprecated 標記該接口廢棄 用于g.Meta標識接口元數(shù)據(jù)
summary 接口/參數(shù)概要描述 縮寫sm
description 接口/參數(shù)詳細描述 縮寫dc
in 參數(shù)的提交方式 header/path/query/cookie
default 參數(shù)的默認值 縮寫d
mime 接口的MIME類型,例如multipart/form-data一般是全局設(shè)置,默認為application/json。 用于g.Meta標識接口元數(shù)據(jù)
type 參數(shù)的類型,一般不需要設(shè)置,特殊參數(shù)需要手動設(shè)置,例如file 僅用于參數(shù)屬性

四、擴展OpenAPIv3信息

核心的接口信息已經(jīng)自動生成,如果開發(fā)者想要更進一步完善接口信息,可以通過?s.GetOpenApi()?接口獲取到?OpenAPIv3?的結(jié)構(gòu)體對象,并手動填充對應的屬性內(nèi)容即可。我們來看一個示例,在該示例中,我們將接口中的標簽進行了自定義的排序,并且增加了對每個標簽的詳細描述:


我們可以發(fā)現(xiàn)通過通用的?OpenAPIv3?對象我們可以自定義修改其內(nèi)容,并且根據(jù)它生成其他各種自定義類型的接口文檔。

五、常見問題

1、如何實現(xiàn)文件上傳的接口定義?

  • 參數(shù)接收的數(shù)據(jù)類型使用?*ghttp.UploadFile ?
  • 如果需要接口文檔也支持文件類型,那么參數(shù)的標簽中設(shè)置?type?為?file?類型




以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號