Updated libraries
This commit is contained in:
378
vendor/github.com/swaggo/swag/README.md
generated
vendored
378
vendor/github.com/swaggo/swag/README.md
generated
vendored
@ -1,71 +1,77 @@
|
||||
# swag
|
||||
|
||||
<p align="center">
|
||||
<img alt="swaggo" src="https://raw.githubusercontent.com/swaggo/swag/master/assets/swaggo.png" width="200">
|
||||
</p>
|
||||
<img align="right" width="180px" src="https://raw.githubusercontent.com/swaggo/swag/master/assets/swaggo.png">
|
||||
|
||||
<p align="center">
|
||||
Automatically generate RESTful API documentation with Swagger 2.0 for Go.
|
||||
</p>
|
||||
[](https://travis-ci.org/swaggo/swag)
|
||||
[](https://codecov.io/gh/swaggo/swag)
|
||||
[](https://goreportcard.com/report/github.com/swaggo/swag)
|
||||
[](https://codebeat.co/projects/github-com-swaggo-swag-master)
|
||||
[](https://godoc.org/github.com/swaggo/swag)
|
||||
[](#backers)
|
||||
[](#sponsors) [](https://app.fossa.io/projects/git%2Bgithub.com%2Fswaggo%2Fswag?ref=badge_shield)
|
||||
|
||||
<p align="center">
|
||||
<a href="https://travis-ci.org/swaggo/swag"><img alt="Travis Status" src="https://img.shields.io/travis/swaggo/swag/master.svg"></a>
|
||||
<a href="https://codecov.io/gh/swaggo/swag"><img alt="Coverage Status" src="https://img.shields.io/codecov/c/github/swaggo/swag/master.svg"></a>
|
||||
<a href="https://goreportcard.com/badge/github.com/swaggo/swag"><img alt="Go Report Card" src="https://goreportcard.com/badge/github.com/swaggo/swag"></a>
|
||||
<a href="https://codebeat.co/projects/github-com-swaggo-swag-master"><img alt="codebeat badge" src="https://codebeat.co/badges/71e2f5e5-9e6b-405d-baf9-7cc8b5037330" /></a>
|
||||
<a href="https://godoc.org/github.com/swaggo/swag"><img alt="Go Doc" src="https://godoc.org/github.com/swaggo/swagg?status.svg"></a>
|
||||
</p>
|
||||
|
||||
<p align="center">gopher image source is <a href="https://github.com/tenntenn/gopher-stickers">tenntenn/gopher-stickers.</a> It has licenses <a href="http://creativecommons.org/licenses/by/3.0/deed.en">creative commons licensing.</a></p>
|
||||
|
||||
## Content
|
||||
- [Getting started](#getting-started)
|
||||
- [Go web frameworks](#supported-web-frameworks)
|
||||
- [Supported Web Frameworks](#supported-web-frameworks)
|
||||
- [How to use it with Gin](#how-to-use-it-with-gin)
|
||||
- [Implementation Status](#implementation-status)
|
||||
- [swag cli](#swag-cli)
|
||||
- [General API Info](#general-api-info)
|
||||
- [Security](#security)
|
||||
- [API Operation](#api-operation)
|
||||
- [TIPS](#tips)
|
||||
- [User defined structure with an array type](#user-defined-structure-with-an-array-type)
|
||||
- [Use multiple path params](#use-multiple-path-params)
|
||||
- [Example value of struct](#example-value-of-struct)
|
||||
- [Description of struct](#description-of-struct)
|
||||
- [About the Project](#about-the-project)
|
||||
|
||||
## Summary
|
||||
|
||||
Swag converts Go annotations to Swagger Documentation 2.0. We've created a variety of plugins for popular [Go web frameworks](#supported-web-frameworks). This allows you to quickly integrate with an existing Go project (using Swagger UI).
|
||||
|
||||
## Examples
|
||||
|
||||
[swaggo + gin](https://github.com/swaggo/swag/tree/master/example)
|
||||
|
||||
## Contents
|
||||
- [Getting started](#getting-started)
|
||||
- [Supported Web Frameworks](#supported-web-frameworks)
|
||||
- [How to use it with Gin](#how-to-use-it-with-gin)
|
||||
- [Implementation Status](#implementation-status)
|
||||
- [Declarative Comments Format](#declarative-comments-format)
|
||||
- [General API Info](##general-api-info)
|
||||
- [API Operation](#api-operation)
|
||||
- [Security](#security)
|
||||
- [Examples](#examples)
|
||||
- [Descriptions over multiple lines](#descriptions-over-multiple-lines)
|
||||
- [User defined structure with an array type](#user-defined-structure-with-an-array-type)
|
||||
- [Add a headers in response](#add-a-headers-in-response)
|
||||
- [Use multiple path params](#use-multiple-path-params)
|
||||
- [Example value of struct](#example-value-of-struct)
|
||||
- [Description of struct](#description-of-struct)
|
||||
- [Override swagger type of a struct field](#Override-swagger-type-of-a-struct-field)
|
||||
- [Add extension info to struct field](#add-extension-info-to-struct-field)
|
||||
- [How to using security annotations](#how-to-using-security-annotations)
|
||||
- [About the Project](#about-the-project)
|
||||
|
||||
## Getting started
|
||||
|
||||
1. Add comments to your API source code, [See Declarative Comments Format](#general-api-info).
|
||||
1. Add comments to your API source code, See [Declarative Comments Format](#declarative-comments-format).
|
||||
|
||||
2. Download swag by using:
|
||||
```sh
|
||||
$ go get -u github.com/swaggo/swag/cmd/swag
|
||||
```
|
||||
Or download the pre-compiled binaries binray form [release page](https://github.com/swaggo/swag/releases).
|
||||
|
||||
3. Run `swag init` in the project's root folder which contains the `main.go` file. This will parse your comments and generate the required files (`docs` folder and `docs/docs.go`).
|
||||
```sh
|
||||
$ swag init
|
||||
```
|
||||
|
||||
4. In order to serve these files, you can utilize one of our supported plugins. For go's core library, check out [net/http](https://github.com/swaggo/http-swagger).
|
||||
|
||||
* Make sure to import the generated `docs/docs.go` so that your specific configuration gets `init`'ed.
|
||||
* If your General API annotation do not live in `main.go`, you can let swag know with `-g`.
|
||||
Make sure to import the generated `docs/docs.go` so that your specific configuration gets `init`'ed. If your General API annotations do not live in `main.go`, you can let swag know with `-g` flag.
|
||||
```sh
|
||||
swag init -g http/api.go
|
||||
```
|
||||
|
||||
## swag cli
|
||||
|
||||
```sh
|
||||
$ swag init -h
|
||||
NAME:
|
||||
swag init - Create docs.go
|
||||
|
||||
USAGE:
|
||||
swag init [command options] [arguments...]
|
||||
|
||||
OPTIONS:
|
||||
--generalInfo value, -g value Go file path in which 'swagger general API Info' is written (default: "main.go")
|
||||
--dir value, -d value Directory you want to parse (default: "./")
|
||||
--propertyStrategy value, -p value Property Naming Strategy like snakecase,camelcase,pascalcase (default: "camelcase")
|
||||
--output value, -o value Output directory for al the generated files(swagger.json, swagger.yaml and doc.go) (default: "./docs")
|
||||
--parseVendor Parse go files in 'vendor' folder, disabled by default --output value, -o value Output directory for al the generated files(swagger.json, swagger.yaml and doc.go) (default: "./docs")
|
||||
```
|
||||
|
||||
## Supported Web Frameworks
|
||||
|
||||
- [gin](http://github.com/swaggo/gin-swagger)
|
||||
@ -215,6 +221,7 @@ import (
|
||||
// @Produce json
|
||||
// @Param id path int true "Account ID"
|
||||
// @Success 200 {object} model.Account
|
||||
// @Header 200 {string} Token "qwerty"
|
||||
// @Failure 400 {object} httputil.HTTPError
|
||||
// @Failure 404 {object} httputil.HTTPError
|
||||
// @Failure 500 {object} httputil.HTTPError
|
||||
@ -241,6 +248,7 @@ func (c *Controller) ShowAccount(ctx *gin.Context) {
|
||||
// @Produce json
|
||||
// @Param q query string false "name search by q"
|
||||
// @Success 200 {array} model.Account
|
||||
// @Header 200 {string} Token "qwerty"
|
||||
// @Failure 400 {object} httputil.HTTPError
|
||||
// @Failure 404 {object} httputil.HTTPError
|
||||
// @Failure 500 {object} httputil.HTTPError
|
||||
@ -286,67 +294,33 @@ $ swag init
|
||||
- [x] Grouping Operations With Tags
|
||||
- [ ] Swagger Extensions
|
||||
|
||||
# swag cli
|
||||
# Declarative Comments Format
|
||||
|
||||
```console
|
||||
$ swag init -h
|
||||
NAME:
|
||||
swag init - Create docs.go
|
||||
|
||||
USAGE:
|
||||
swag init [command options] [arguments...]
|
||||
|
||||
OPTIONS:
|
||||
--generalInfo value, -g value Go file path in which 'swagger general API Info' is written (default: "main.go")
|
||||
--dir value, -d value Directory you want to parse (default: "./")
|
||||
--swagger value, -s value Output the swagger conf for json and yaml (default: "./docs/swagger")
|
||||
--propertyStrategy value, -p value Property Naming Strategy like snakecase,camelcase,pascalcase (default: "camelcase")
|
||||
```
|
||||
|
||||
# General API Info
|
||||
## General API Info
|
||||
|
||||
**Example**
|
||||
[celler/main.go](https://github.com/swaggo/swag/blob/master/example/celler/main.go)
|
||||
|
||||
| annotation | description | example |
|
||||
|-----------------------|-------------------------------------------------------------------------------------------------|-----------------------------------------------------------------|
|
||||
| title | **Required.** The title of the application. | // @title Swagger Example API |
|
||||
| version | **Required.** Provides the version of the application API. | // @version 1.0 |
|
||||
| description | A short description of the application. | // @description This is a sample server celler server. |
|
||||
| tag.name | Name of a tag. | // @tag.name This is the name of the tag |
|
||||
| tag.description | Description of the tag | // @tag.description Cool Description |
|
||||
| tag.docs.url | Url of the external Documentation of the tag | // @tag.docs.url https://example.com |
|
||||
| tag.docs.descripiton | Description of the external Documentation of the tag | // @tag.docs.descirption Best example documentation |
|
||||
| termsOfService | The Terms of Service for the API. | // @termsOfService http://swagger.io/terms/ |
|
||||
| contact.name | The contact information for the exposed API. | // @contact.name API Support |
|
||||
| contact.url | The URL pointing to the contact information. MUST be in the format of a URL. | // @contact.url http://www.swagger.io/support |
|
||||
| contact.email | The email address of the contact person/organization. MUST be in the format of an email address.| // @contact.email support@swagger.io |
|
||||
| license.name | **Required.** The license name used for the API. | // @license.name Apache 2.0 |
|
||||
| license.url | A URL to the license used for the API. MUST be in the format of a URL. | // @license.url http://www.apache.org/licenses/LICENSE-2.0.html |
|
||||
| host | The host (name or ip) serving the API. | // @host localhost:8080 |
|
||||
| BasePath | The base path on which the API is served. | // @BasePath /api/v1 |
|
||||
| annotation | description | example |
|
||||
|-------------|--------------------------------------------|---------------------------------|
|
||||
| title | **Required.** The title of the application.| // @title Swagger Example API |
|
||||
| version | **Required.** Provides the version of the application API.| // @version 1.0 |
|
||||
| description | A short description of the application. |// @description This is a sample server celler server. |
|
||||
| tag.name | Name of a tag.| // @tag.name This is the name of the tag |
|
||||
| tag.description | Description of the tag | // @tag.description Cool Description |
|
||||
| tag.docs.url | Url of the external Documentation of the tag | // @tag.docs.url https://example.com|
|
||||
| tag.docs.descripiton | Description of the external Documentation of the tag| // @tag.docs.descirption Best example documentation |
|
||||
| termsOfService | The Terms of Service for the API.| // @termsOfService http://swagger.io/terms/ |
|
||||
| contact.name | The contact information for the exposed API.| // @contact.name API Support |
|
||||
| contact.url | The URL pointing to the contact information. MUST be in the format of a URL. | // @contact.url http://www.swagger.io/support|
|
||||
| contact.email| The email address of the contact person/organization. MUST be in the format of an email address.| // @contact.email support@swagger.io |
|
||||
| license.name | **Required.** The license name used for the API.|// @license.name Apache 2.0|
|
||||
| license.url | A URL to the license used for the API. MUST be in the format of a URL. | // @license.url http://www.apache.org/licenses/LICENSE-2.0.html |
|
||||
| host | The host (name or ip) serving the API. | // @host localhost:8080 |
|
||||
| BasePath | The base path on which the API is served. | // @BasePath /api/v1 |
|
||||
| schemes | The transfer protocol for the operation that separated by spaces. | // @schemes http https |
|
||||
|
||||
## Security
|
||||
|
||||
| annotation | description | parameters | example |
|
||||
|-----------------------------------------|------------------------------------------------------------------------------------------------|-----------------------------------|--------------------------------------------------------------|
|
||||
| securitydefinitions.basic | [Basic](https://swagger.io/docs/specification/2-0/authentication/basic-authentication/) auth. | | // @securityDefinitions.basic BasicAuth |
|
||||
| securitydefinitions.apikey | [API key](https://swagger.io/docs/specification/2-0/authentication/api-keys/) auth. | in, name | // @securityDefinitions.apikey ApiKeyAuth |
|
||||
| securitydefinitions.oauth2.application | [OAuth2 application](https://swagger.io/docs/specification/authentication/oauth2/) auth. | tokenUrl, scope | // @securitydefinitions.oauth2.application OAuth2Application |
|
||||
| securitydefinitions.oauth2.implicit | [OAuth2 implicit](https://swagger.io/docs/specification/authentication/oauth2/) auth. | authorizationUrl, scope | // @securitydefinitions.oauth2.implicit OAuth2Implicit |
|
||||
| securitydefinitions.oauth2.password | [OAuth2 password](https://swagger.io/docs/specification/authentication/oauth2/) auth. | tokenUrl, scope | // @securitydefinitions.oauth2.password OAuth2Password |
|
||||
| securitydefinitions.oauth2.accessCode | [OAuth2 access code](https://swagger.io/docs/specification/authentication/oauth2/) auth. | tokenUrl, authorizationUrl, scope | // @securitydefinitions.oauth2.accessCode OAuth2AccessCode |
|
||||
|
||||
|
||||
| parameters annotation | example |
|
||||
|-----------------------|----------------------------------------------------------|
|
||||
| in | // @in header |
|
||||
| name | // @name Authorization |
|
||||
| tokenUrl | // @tokenUrl https://example.com/oauth/token |
|
||||
| authorizationurl | // @authorizationurl https://example.com/oauth/authorize |
|
||||
| scope.hoge | // @scope.write Grants write access |
|
||||
|
||||
# API Operation
|
||||
## API Operation
|
||||
|
||||
**Example**
|
||||
[celler/controller](https://github.com/swaggo/swag/tree/master/example/celler/controller)
|
||||
@ -364,50 +338,30 @@ OPTIONS:
|
||||
| security | [Security](#security) to each API operation. |
|
||||
| success | Success response that separated by spaces. `return code`,`{param type}`,`data type`,`comment` |
|
||||
| failure | Failure response that separated by spaces. `return code`,`{param type}`,`data type`,`comment` |
|
||||
| header | Header in response that separated by spaces. `return code`,`{param type}`,`data type`,`comment` |
|
||||
| router | Path definition that separated by spaces. `path`,`[httpMethod]` |
|
||||
|
||||
## Mime Types
|
||||
|
||||
| Mime Type | annotation |
|
||||
|-----------------------------------|-----------------------------------------------------------|
|
||||
| application/json | application/json, json |
|
||||
| text/xml | text/xml, xml |
|
||||
| text/plain | text/plain, plain |
|
||||
| html | text/html, html |
|
||||
| multipart/form-data | multipart/form-data, mpfd |
|
||||
| application/x-www-form-urlencoded | application/x-www-form-urlencoded, x-www-form-urlencoded |
|
||||
| application/vnd.api+json | application/vnd.api+json, json-api |
|
||||
| application/x-json-stream | application/x-json-stream, json-stream |
|
||||
| application/octet-stream | application/octet-stream, octet-stream |
|
||||
| image/png | image/png, png |
|
||||
| image/jpeg | image/jpeg, jpeg |
|
||||
| image/gif | image/gif, gif |
|
||||
`swag` accepts all MIME Types which are in the correct format, that is, match `*/*`.
|
||||
Besides that, `swag` also accepts aliases for some MIME Types as follows:
|
||||
|
||||
## Security
|
||||
| Alias | MIME Type |
|
||||
|-----------------------|-----------------------------------|
|
||||
| json | application/json |
|
||||
| xml | text/xml |
|
||||
| plain | text/plain |
|
||||
| html | text/html |
|
||||
| mpfd | multipart/form-data |
|
||||
| x-www-form-urlencoded | application/x-www-form-urlencoded |
|
||||
| json-api | application/vnd.api+json |
|
||||
| json-stream | application/x-json-stream |
|
||||
| octet-stream | application/octet-stream |
|
||||
| png | image/png |
|
||||
| jpeg | image/jpeg |
|
||||
| gif | image/gif |
|
||||
|
||||
General API info.
|
||||
|
||||
```go
|
||||
// @securityDefinitions.basic BasicAuth
|
||||
|
||||
// @securitydefinitions.oauth2.application OAuth2Application
|
||||
// @tokenUrl https://example.com/oauth/token
|
||||
// @scope.write Grants write access
|
||||
// @scope.admin Grants read and write access to administrative information
|
||||
```
|
||||
|
||||
Each API operation.
|
||||
|
||||
```go
|
||||
// @Security ApiKeyAuth
|
||||
```
|
||||
|
||||
Make it AND condition
|
||||
|
||||
```go
|
||||
// @Security ApiKeyAuth
|
||||
// @Security OAuth2Application[write, admin]
|
||||
```
|
||||
|
||||
## Param Type
|
||||
|
||||
@ -426,6 +380,26 @@ Make it AND condition
|
||||
- boolean (bool)
|
||||
- user defined struct
|
||||
|
||||
## Security
|
||||
| annotation | description | parameters | example |
|
||||
|------------|-------------|------------|---------|
|
||||
| securitydefinitions.basic | [Basic](https://swagger.io/docs/specification/2-0/authentication/basic-authentication/) auth. | | // @securityDefinitions.basic BasicAuth |
|
||||
| securitydefinitions.apikey | [API key](https://swagger.io/docs/specification/2-0/authentication/api-keys/) auth. | in, name | // @securityDefinitions.apikey ApiKeyAuth |
|
||||
| securitydefinitions.oauth2.application | [OAuth2 application](https://swagger.io/docs/specification/authentication/oauth2/) auth. | tokenUrl, scope | // @securitydefinitions.oauth2.application OAuth2Application |
|
||||
| securitydefinitions.oauth2.implicit | [OAuth2 implicit](https://swagger.io/docs/specification/authentication/oauth2/) auth. | authorizationUrl, scope | // @securitydefinitions.oauth2.implicit OAuth2Implicit |
|
||||
| securitydefinitions.oauth2.password | [OAuth2 password](https://swagger.io/docs/specification/authentication/oauth2/) auth. | tokenUrl, scope | // @securitydefinitions.oauth2.password OAuth2Password |
|
||||
| securitydefinitions.oauth2.accessCode | [OAuth2 access code](https://swagger.io/docs/specification/authentication/oauth2/) auth. | tokenUrl, authorizationUrl, scope | // @securitydefinitions.oauth2.accessCode OAuth2AccessCode |
|
||||
|
||||
|
||||
| parameters annotation | example |
|
||||
|-----------------------|----------------------------------------------------------|
|
||||
| in | // @in header |
|
||||
| name | // @name Authorization |
|
||||
| tokenUrl | // @tokenUrl https://example.com/oauth/token |
|
||||
| authorizationurl | // @authorizationurl https://example.com/oauth/authorize |
|
||||
| scope.hoge | // @scope.write Grants write access |
|
||||
|
||||
|
||||
## Attribute
|
||||
|
||||
```go
|
||||
@ -457,12 +431,12 @@ Field Name | Type | Description
|
||||
<a name="parameterMaxLength"></a>maxLength | `integer` | See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.2.1.
|
||||
<a name="parameterMinLength"></a>minLength | `integer` | See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.2.2.
|
||||
<a name="parameterEnums"></a>enums | [\*] | See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.5.1.
|
||||
<a name="parameterFormat"></a>format | `string` | The extending format for the previously mentioned [`type`](#parameterType). See [Data Type Formats](#dataTypeFormat) for further details.
|
||||
|
||||
### Future
|
||||
|
||||
Field Name | Type | Description
|
||||
---|:---:|---
|
||||
<a name="parameterFormat"></a>format | `string` | The extending format for the previously mentioned [`type`](#parameterType). See [Data Type Formats](#dataTypeFormat) for further details.
|
||||
<a name="parameterMultipleOf"></a>multipleOf | `number` | See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.1.1.
|
||||
<a name="parameterPattern"></a>pattern | `string` | See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.2.3.
|
||||
<a name="parameterMaxItems"></a>maxItems | `integer` | See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.3.2.
|
||||
@ -470,7 +444,17 @@ Field Name | Type | Description
|
||||
<a name="parameterUniqueItems"></a>uniqueItems | `boolean` | See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.3.4.
|
||||
<a name="parameterCollectionFormat"></a>collectionFormat | `string` | Determines the format of the array if type array is used. Possible values are: <ul><li>`csv` - comma separated values `foo,bar`. <li>`ssv` - space separated values `foo bar`. <li>`tsv` - tab separated values `foo\tbar`. <li>`pipes` - pipe separated values <code>foo|bar</code>. <li>`multi` - corresponds to multiple parameter instances instead of multiple values for a single instance `foo=bar&foo=baz`. This is valid only for parameters [`in`](#parameterIn) "query" or "formData". </ul> Default value is `csv`.
|
||||
|
||||
## TIPS
|
||||
## Examples
|
||||
|
||||
### Descriptions over multiple lines
|
||||
|
||||
You can add descriptions spanning multiple lines in either the general api description or routes definitions like so:
|
||||
|
||||
```go
|
||||
// @description This is the first line
|
||||
// @description This is the second line
|
||||
// @description And so forth.
|
||||
```
|
||||
|
||||
### User defined structure with an array type
|
||||
|
||||
@ -486,6 +470,13 @@ type Account struct {
|
||||
Name string `json:"name" example:"account name"`
|
||||
}
|
||||
```
|
||||
### Add a headers in response
|
||||
|
||||
```go
|
||||
// @Success 200 {string} string "ok"
|
||||
// @Header 200 {string} Location "/entity/1"
|
||||
// @Header 200 {string} Token "qwerty"
|
||||
```
|
||||
|
||||
### Use multiple path params
|
||||
|
||||
@ -511,22 +502,129 @@ type Account struct {
|
||||
|
||||
```go
|
||||
type Account struct {
|
||||
// ID this is userid
|
||||
ID int `json:"id"
|
||||
// ID this is userid
|
||||
ID int `json:"id"`
|
||||
Name string `json:"name"` // This is Name
|
||||
}
|
||||
```
|
||||
|
||||
### Override swagger type of a struct field
|
||||
|
||||
```go
|
||||
type TimestampTime struct {
|
||||
time.Time
|
||||
}
|
||||
|
||||
///implement encoding.JSON.Marshaler interface
|
||||
func (t *TimestampTime) MarshalJSON() ([]byte, error) {
|
||||
bin := make([]byte, 16)
|
||||
bin = strconv.AppendInt(bin[:0], t.Time.Unix(), 10)
|
||||
return bin, nil
|
||||
}
|
||||
|
||||
func (t *TimestampTime) UnmarshalJSON(bin []byte) error {
|
||||
v, err := strconv.ParseInt(string(bin), 10, 64)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
t.Time = time.Unix(v, 0)
|
||||
return nil
|
||||
}
|
||||
///
|
||||
|
||||
type Account struct {
|
||||
// Override primitive type by simply specifying it via `swaggertype` tag
|
||||
ID sql.NullInt64 `json:"id" swaggertype:"integer"`
|
||||
|
||||
// Override struct type to a primitive type 'integer' by specifying it via `swaggertype` tag
|
||||
RegisterTime TimestampTime `json:"register_time" swaggertype:"primitive,integer"`
|
||||
|
||||
// Array types can be overridden using "array,<prim_type>" format
|
||||
Coeffs []big.Float `json:"coeffs" swaggertype:"array,number"`
|
||||
}
|
||||
```
|
||||
|
||||
### Add extension info to struct field
|
||||
|
||||
```go
|
||||
type Account struct {
|
||||
ID int `json:"id" extensions:"x-nullable,x-abc=def"` // extensions fields must start with "x-"
|
||||
}
|
||||
```
|
||||
|
||||
generate swagger doc as follows:
|
||||
|
||||
```go
|
||||
"Account": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string",
|
||||
"x-nullable": true,
|
||||
"x-abc": "def"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### How to using security annotations
|
||||
|
||||
General API info.
|
||||
|
||||
```go
|
||||
// @securityDefinitions.basic BasicAuth
|
||||
|
||||
// @securitydefinitions.oauth2.application OAuth2Application
|
||||
// @tokenUrl https://example.com/oauth/token
|
||||
// @scope.write Grants write access
|
||||
// @scope.admin Grants read and write access to administrative information
|
||||
```
|
||||
|
||||
Each API operation.
|
||||
|
||||
```go
|
||||
// @Security ApiKeyAuth
|
||||
```
|
||||
|
||||
Make it AND condition
|
||||
|
||||
```go
|
||||
// @Security ApiKeyAuth
|
||||
// @Security OAuth2Application[write, admin]
|
||||
```
|
||||
|
||||
## About the Project
|
||||
This project was inspired by [yvasiyarov/swagger](https://github.com/yvasiyarov/swagger) but we simplified the usage and added support a variety of [web frameworks](#supported-web-frameworks).
|
||||
This project was inspired by [yvasiyarov/swagger](https://github.com/yvasiyarov/swagger) but we simplified the usage and added support a variety of [web frameworks](#supported-web-frameworks). Gopher image source is [tenntenn/gopher-stickers](https://github.com/tenntenn/gopher-stickers). It has licenses [creative commons licensing](http://creativecommons.org/licenses/by/3.0/deed.en).
|
||||
## Contributors
|
||||
|
||||
This project exists thanks to all the people who contribute. [[Contribute](CONTRIBUTING.md)].
|
||||
<a href="https://github.com/swaggo/swag/graphs/contributors"><img src="https://opencollective.com/swag/contributors.svg?width=890&button=false" /></a>
|
||||
|
||||
|
||||
## Backers
|
||||
|
||||
Thank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/swag#backer)]
|
||||
|
||||
<a href="https://opencollective.com/swag#backers" target="_blank"><img src="https://opencollective.com/swag/backers.svg?width=890"></a>
|
||||
|
||||
|
||||
## Sponsors
|
||||
|
||||
Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/swag#sponsor)]
|
||||
|
||||
<a href="https://opencollective.com/swag/sponsor/0/website" target="_blank"><img src="https://opencollective.com/swag/sponsor/0/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/swag/sponsor/1/website" target="_blank"><img src="https://opencollective.com/swag/sponsor/1/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/swag/sponsor/2/website" target="_blank"><img src="https://opencollective.com/swag/sponsor/2/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/swag/sponsor/3/website" target="_blank"><img src="https://opencollective.com/swag/sponsor/3/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/swag/sponsor/4/website" target="_blank"><img src="https://opencollective.com/swag/sponsor/4/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/swag/sponsor/5/website" target="_blank"><img src="https://opencollective.com/swag/sponsor/5/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/swag/sponsor/6/website" target="_blank"><img src="https://opencollective.com/swag/sponsor/6/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/swag/sponsor/7/website" target="_blank"><img src="https://opencollective.com/swag/sponsor/7/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/swag/sponsor/8/website" target="_blank"><img src="https://opencollective.com/swag/sponsor/8/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/swag/sponsor/9/website" target="_blank"><img src="https://opencollective.com/swag/sponsor/9/avatar.svg"></a>
|
||||
|
||||
|
||||
|
||||
|
||||
## License
|
||||
[](https://app.fossa.io/projects/git%2Bgithub.com%2Fswaggo%2Fswag?ref=badge_large)
|
Reference in New Issue
Block a user