当前位置:网站首页>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
边栏推荐
- Transactions from January 14 to 19, 2022
- Take you hand in hand to develop a service monitoring component
- Resnet18 actual battle Baoke dream spirit
- Learn the memory management of JVM 02 - memory allocation of JVM
- Transactions on December 23, 2021
- NPM install reports an error
- 太方便了,钉钉上就可完成代码发布审批啦!
- 激动人心!2022开放原子全球开源峰会报名火热开启!
- Kotlin流程控制、循环
- PIP command reports an error pip is configured with locations that requires tls/ssl problems
猜你喜欢
CVPR 2022 | 基于稀疏 Transformer 的单步三维目标识别器
非技术部门,如何参与 DevOps?
Making and using the cutting tool of TTF font library
ZABBIX ODBC database monitoring
UNIX socket advanced learning diary -ipv4-ipv6 interoperability
Interviewer: is acid fully guaranteed for redis transactions?
C language structure is initialized as a function parameter
JDBC -- use JDBC connection to operate MySQL database
Solve the problem of cache and database double write data consistency
Simply take stock reading notes (2/8)
随机推荐
NFT: how to make money with unique assets?
2021-12-22 transaction record
Difference between JUnit theories and parameterized tests
PIP command reports an error pip is configured with locations that requires tls/ssl problems
MySQL log module of InnoDB engine
10 minute fitness method reading notes (1/5)
Average lookup length when hash table lookup fails
Kotlin function
I met Tencent in the morning and took out 38K, which showed me the basic smallpox
Flume common commands and basic operations
Sqoop import and export operation
2021-12-21 transaction record
Experimental design - using stack to realize calculator
About cache exceptions: solutions for cache avalanche, breakdown, and penetration
Learning JVM garbage collection 06 - memory set and card table (hotspot)
[superhard core] is the core technology of redis
Distributed solution - completely solve website cross domain requests
NPM install reports an error
Neural network of PRML reading notes (1)
Pytorch two-layer loop to realize the segmentation of large pictures