diff --git a/README.md b/README.md index ebbd9aa..54519e0 100644 --- a/README.md +++ b/README.md @@ -1 +1,73 @@ # gin-swagger + +gin middleware to automatically generate RESTful API documentation with Swagger 2.0. + +[![Travis branch](https://img.shields.io/travis/swag-gonic/gin-swagger/master.svg)](https://travis-ci.org/swag-gonic/gin-swagger) +[![Codecov branch](https://img.shields.io/codecov/c/github/swag-gonic/gin-swagger/master.svg)](https://codecov.io/gh/swag-gonic/gin-swagger) +[![Go Report Card](https://goreportcard.com/badge/github.com/swag-gonic/gin-swagger)](https://goreportcard.com/report/github.com/swag-gonic/gin-swagger) + + +## Usage + +### Start using it +1. Add comments to your API source code, [see Declarative Comments Format](#declarative-comments-format) +2. Download Swag for Go by using: +```sh +$ go get -u github.com/swag-gonic/swag +``` +3. Run the Swag in your Go project root folder which contains `main.go` file, Swag will parse your comments and generate required files(`docs` folder and `docs/doc.go`) +```sh +$ swag init +``` +3. +``` + +```sh +$ go get github.com/swag-gonic/gin-swagger +``` + +Import it in your code: + +```go +import "github.com/gin-gonic/gin" +import "github.com/swag-gonic/gin-swagger" +import "github.com/swag-gonic/gin-swagger/swaggerFiles" + +``` + +### Canonical example: + +```go +package main + +import ( + "github.com/gin-gonic/gin" + "github.com/swag-gonic/gin-swagger" + "github.com/swag-gonic/gin-swagger/swaggerFiles" + + _ "github.com/swag-gonic/gin-swagger/example/docs" +) + +// @title Swagger Example API +// @version 1.0 +// @description This is a sample server Petstore server. +// @termsOfService http://swagger.io/terms/ + +// @contact.name API Support +// @contact.url http://www.swagger.io/support +// @contact.email support@swagger.io + +// @license.name Apache 2.0 +// @license.url http://www.apache.org/licenses/LICENSE-2.0.html + +// @host petstore.swagger.io +// @BasePath /v2 +func main() { + r := gin.New() + + r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler)) + + r.Run() +} +``` + No newline at end of file diff --git a/b0x.yml b/b0x.yml new file mode 100644 index 0000000..48b1cf5 --- /dev/null +++ b/b0x.yml @@ -0,0 +1,84 @@ +# all folders and files are relative to the path +# where fileb0x was run at! + +# default: main +pkg: swaggerFiles + +# destination +dest: "./swaggerFiles/" + +# gofmt +# type: bool +# default: false +fmt: true + +# compress files +# at the moment, only supports gzip +# +# type: object +compression: + # activates the compression + # + # type: bool + # default: false + compress: false + + # valid values are: + # -> "NoCompression" + # -> "BestSpeed" + # -> "BestCompression" + # -> "DefaultCompression" or "" + # + # type: string + # default: "DefaultCompression" # when: Compress == true && Method == "" + method: "" + + # true = do it yourself (the file is written as gzip compressed file into the memory file system) + # false = decompress files at run time (while writing file into memory file system) + # + # type: bool + # default: false + keep: false + +# --------------- +# -- DANGEROUS -- +# --------------- +# +# cleans the destination folder (only b0xfiles) +# you should use this when using the spread function +# type: bool +# default: false +clean: true + +# default: ab0x.go +output: "ab0x.go" + +# [unexporTed] builds non-exporTed functions, variables and types... +# type: bool +# default: false +unexporTed: false + +# [spread] means it will make a file to hold all fileb0x data +# and each file into a separaTed .go file +# +# example: +# theres 2 files in the folder assets, they're: hello.json and world.txt +# when spread is activaTed, fileb0x will make a file: +# b0x.go or [output]'s data, assets_hello.json.go and assets_world.txt.go +# +# +# type: bool +# default: false +spread: true + +# type: array of objects +custom: + + - files: + # everything inside the folder + # type: array of strings + - "./dist/" + + # base is the path that will be removed from all files' path + # type: string + base: "dist" \ No newline at end of file