当前位置:网站首页>Super efficient! The secret of swagger Yapi
Super efficient! The secret of swagger Yapi
2022-07-05 12:48:00 【InfoQ】

One 、Swagger brief introduction
Two 、Swagger build


mkdir DownLoad
cd DownLoad
git clone https://github.com/go-swagger/go-swagger
cd DownLoad/go-swagger-master/cmd/swagger/
go install .
[[email protected] /]$ swagger -h
Usage:
swagger [OPTIONS] <command>
Swagger tries to support you as best as possible when building APIs.
It aims to represent the contract of your API with a language agnostic description of your application in json or yaml.
Application Options:
-q, --quiet silence logs
--log-output=LOG-FILE redirect logs to file
Help Options:
-h, --help Show this help message
Available commands:
diff diff swagger documents
expand expand $ref fields in a swagger spec
flatten flattens a swagger document
generate generate go code
init initialize a spec document
mixin merge swagger documents
serve serve spec and docs
validate validate the swagger document
version print the version
- This part is all about swagger Usage of , Let's start with the simplest , Interface notes , Copy the comments above the sample to the top of the interface :


- Sample document comments :

- function swagger, Generate interface document
- command :swagger generate spec -o ./swagger.json

- start-up swagger service , Enter the interface document page
- command :swagger serve --no-open swagger.json

3、 ... and 、Swagger standard
// Go-Swagger API.(title)
//
// This is our test API (description)
//
// Terms Of Service:
// there are no TOS at this moment, use at your own risk we take no responsibility
//
// Schemes: http, https
// Host: localhost
// BasePath: /go-swagger/test
// Version: 0.0.1
// License: MIT http://opensource.org/licenses/MIT
// Contact: Zhubangzheng<[email protected]> [email protected]
//
// Consumes:
// - application/json
// - application/xml
//
// Produces:
// - application/json
// - application/xml
//
// Security:
// - api_key:
//
// SecurityDefinitions:
// api_key:
// type: apiKey
// name: KEY
// in: header
// oauth2:
// type: oauth2
// authorizationUrl: /oauth2/auth
// tokenUrl: /oauth2/token
// in: header
// scopes:
// bar: foo
// flow: accessCode
//
// Extensions:
// x-meta-value: value
// x-meta-array:
// - value1
// - value2
// x-meta-array-obj:
// - name: obj
// value: field
//
// swagger:meta
package test

// ServeAPI serves the API for this record store
func ServeAPI(host, basePath string, schemes []string) error {
// swagger:route GET /{id}/checkout SwaggerTest swagger_test_checkout
//
// Swagger Test interface
//
// be used for Swagger test
//
// Consumes:
// - application/json
// - application/x-protobuf
//
// Produces:
// - application/json
// - application/x-protobuf
//
// Schemes: http, https, ws, wss
//
// Deprecated: true
//
// Security:
// api_key:
// oauth: read, write
//
// Responses:
// default: genericError
// 200: someResponse
// 422: validationError
mountItem("GET", basePath+"/{id}/checkout", nil)
}

// swagger:parameters swagger_test_checkout
type SwaggerTest struct {
// SwaggerTest Interface test parameters 1 (description)
// required: true( Whether must )
// in: query( Where the parameter is located )
ID uinat64 `json:"id"`
}

- POST:
// swagger:parameters swagger_test_checkout
type SwaggerTest struct {
// SwaggerTest Interface test parameters 1 (description)
// required: true( Whether must )
// in: formData( Where the parameter is located )
ID uinat64 `json:"id"`
}
// ServeAPI serves the API for this record store
func ServeAPI(host, basePath string, schemes []string) error {
// swagger:route GET /{id}/checkout SwaggerTest swagger_test_checkout
//
// Swagger Test interface
//
// be used for Swagger test
//
// Consumes:
// multipart/form-data
//
// ......
mountItem("GET", basePath+"/{id}/checkout", nil)
}
// A ValidationError is an error that is used when the required input fails validation.
// swagger:response validationError
type ValidationError struct {
// The error message
// in: body
Body struct {
// The validation message
//
// Required: true
// Example: Expected type int
Message string
// An optional field name to which this validation applies
FieldName string
}
}
// SwaggerTestResponse
// swagger:response test_res
type SwaggerTestResponse struct {
// The error message
// in: body
Body struct {
// The validation message
//
// Required: true
// Example: Expected type int
Message string
// An optional field name to which this validation applies
FieldName string
}
}
// Test
// swagger:response old_api_resp
type OldAPIRes struct {
// Test
// in: body
ID uint64
Name string
Time string
}
// ServeAPI serves the API for this record store
func ServeAPI(host, basePath string, schemes []string) error {
// swagger:route GET /{id}/checkout SwaggerTest swagger_test_checkout
//
// Swagger Test interface
//
// be used for Swagger test
//
// Consumes:
// - multipart/form-data
// Schemes: http
// Responses:
// 200: old_api_resp
mountItem("GET", basePath+"/{id}/checkout", nil)
}

// Test
// swagger:response old_api_resp
type OldAPIRes struct {
// Test
// in: body
Body struct {
ID uint64
Name string
Time string
}
}
// swagger:model old_api_resp
type OldAPIRes struct {
ID uint64
Name string
Time string
}
// ServeAPI serves the API for this record store
func ServeAPI(host, basePath string, schemes []string) error {
// swagger:route GET /{id}/checkout SwaggerTest swagger_test_checkout
//
// Swagger Test interface
//
// be used for Swagger test
//
// Consumes:
// - multipart/form-data
// Produces:
// - application/json
// Schemes: http
// Responses:
// 200: body:old_api_resp
mountItem("GET", basePath+"/{id}/checkout", nil)
swagger generate spec -m -o ./swagger.json
Four 、Swagger-Yapi



sudo yum install nginx -y
rpm -qa | grep nginx
sudo systemctl start nginx
sudo service nginx start
sudo systemctl status nginx
sudo service nginx status
cd /etc/nginx/
cd conf.d/
vim yapi.conf
server {
listen 8888;
server_name localhost;
location /data/ {
alias '/home/work/Swagger/swagger-yapi/swagger-json/';
}
}
sudo systemctl restart nginx
sudo service nginx restart
hostname -i


5、 ... and 、 Conclusion
边栏推荐
- 太方便了,钉钉上就可完成代码发布审批啦!
- ZABBIX 5.0 - LNMP environment compilation and installation
- Learn the memory management of JVM 03 - Method area and meta space of JVM
- GPON technical standard analysis I
- ZABBIX agent2 monitors mongodb nodes, clusters and templates (official blog)
- struct MySQL
- Rasa Chat Robot Tutorial (translation) (1)
- C language structure is initialized as a function parameter
- 上午面了个腾讯拿 38K 出来的,让我见识到了基础的天花
- Master-slave mode of redis cluster
猜你喜欢

Add a new cloud disk to Huawei virtual machine

Transactions from January 6 to October 2022

Ecplise development environment configuration and simple web project construction

Pytoch uses torchnet Classerrormeter in meter

Iterator details in list... Interview pits

Redis highly available sentinel mechanism

Taobao order interface | order flag remarks, may be the most stable and easy-to-use interface

Keras implements verification code identification

激动人心!2022开放原子全球开源峰会报名火热开启!

Distance measuring sensor chip 4530a used in home intelligent lighting
随机推荐
Understand redis persistence mechanism in one article
Instance + source code = see through 128 traps
Pytoch loads the initialization V3 pre training model and reports an error
Distributed solution - Comprehensive decryption of distributed task scheduling platform - xxljob scheduling center cluster
Learn JVM garbage collection 02 - a brief introduction to the reference and recycling method area
Distributed solution - completely solve website cross domain requests
Redis highly available sentinel mechanism
C language structure is initialized as a function parameter
Redis clean cache
C alarm design
[hdu 2096] Xiaoming a+b
Using docker for MySQL 8.0 master-slave configuration
Kotlin变量
Database connection pool & jdbctemplate
Correct opening method of redis distributed lock
Language model
CVPR 2022 | 基于稀疏 Transformer 的单步三维目标识别器
Get the variable address of structure member in C language
Storage Basics
PXE startup configuration and principle