Вы тоже не проецируете документальные пытки? Вам нужно написать проект документа из-за головной боли? Вы тоже попали в ловушку с ветхими документами? Мальчик, съев мой Amway сделал это! Развернув Swagger, эти проблемы будут далеко от вас, красивые, читаемые, тестируемые, срочные документы, вы не хотите попробовать?
введение
Основная концепция swagger и основная идея построения всего проекта, а также предыдущие статьи,Использование swagger для создания проектной документации с высокой доступностью — статьи о PHPЗдесь это не повторяется, здесь описываются только различия между развертыванием и использованием.
развертывать
Для базовой установки среды go обратитесь к официальной документации Здесь предполагается, что у вас уже есть среда go, которая может стабильно работать.
-
Установите базовые компоненты сначала
go get -u github.com/go-swagger/go-swagger/cmd/swagger
Рекомендуется использовать go get для прямой установки. Многие проекты, установленные с помощью brew, столкнутся с проблемой неправильного чтения пути GOROOT. Если вы столкнетесь с подобными проблемами, вы можете обратиться к следующей проблеме.
-
добавить комментарии к интерфейсу
Синтаксис комментария может относиться кПравила использования официальных документов
这里提供一组简单的例子,笔者使用的是go+kit,未使用框架 由于go kit提供了endpoint层,request和response由服务框架自动生成,可以方便的在上面添加注释 // Package classification Example api. // // This is an example api // // Host: 127.0.0.1 // Version: 1.0.0 // // swagger:meta package endpoint // swagger:parameters GetExampleRequest type GetExampleRequest struct { // in: query Id string `json:"id"` } // example api response // swagger:response GetExampleResponse type GetExampleResponse struct { // response body // in: body Body struct { // the code og response // // Required: true Code int `json:"code"` // the message of response // // Required: true Message string `json:"message"` // response data Data interface{} `json:"data"` } } // swagger:route GET /example tag GetExampleRequest // // example route // // This is an example route // // Responses: // 200: GetExampleResponse
Скопируйте пример, чтобы получить интерфейс со стандартизированными аннотациями.
-
Получить стандартный Swagger Json
Нужно только выполнить в корневом каталоге проекта
swagger generate spec -o ./swagger.json
Эта команда начнет сканирование с файла main.go проекта и проанализирует все комментарии чванства. На этом этапе файл swagger.json будет сгенерирован в корневом пути проекта.Принимая приведенные выше комментарии в качестве примера, сгенерированный контент выглядит следующим образом
{ "swagger": "2.0", "info": { "description": "This is an example api", "title": "Example api.", "version": "1.0.0" }, "host": "127.0.0.1", "paths": { "/example": { "get": { "description": "This is an example route", "tags": [ "tag" ], "summary": "example route", "operationId": "GetExampleRequest", "parameters": [ { "type": "string", "x-go-name": "Id", "name": "id", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/GetExampleResponse" } } } } }, "responses": { "GetExampleResponse": { "description": "example api response", "schema": { "type": "object", "required": [ "code", "message" ], "properties": { "code": { "description": "the code og response", "type": "integer", "format": "int64", "x-go-name": "Code" }, "data": { "description": "response data", "type": "object", "x-go-name": "Data" }, "message": { "description": "the message of response", "type": "string", "x-go-name": "Message" } } } } } }
На этом этапе родились стандартные данные Swagger Json. Следующая идея очень проста, написать новый интерфейс, вывести файл json напрямую, а затем использовать предыдущую статьюИспользование swagger для создания проектной документации с высокой доступностью — статьи о PHPПлагин Chrome, упомянутый в, может напрямую открывать интерфейс.
На этом этапе родился быстрый и удобный документ go swagger Конкретный способ его использования зависит от личных предпочтений каждого.Hope you enjoy it!
Справочные документы
Официальная документация Go Swagger