项目作者: swaggo

项目描述 :
echo middleware to automatically generate RESTful API documentation with Swagger 2.0.
高级语言: Go
项目地址: git://github.com/swaggo/echo-swagger.git
创建时间: 2017-06-22T00:46:11Z
项目社区:https://github.com/swaggo/echo-swagger

开源协议:MIT License

下载


echo-swagger

echo middleware to automatically generate RESTful API documentation with Swagger 2.0.

Build Status
Codecov branch
Go Report Card
Release

Usage

Start using it

  1. Add comments to your API source code, See Declarative Comments Format.
  2. Download Swag for Go by using:
    ```sh
    $ go get -d github.com/swaggo/swag/cmd/swag

1.16 or newer

$ go install github.com/swaggo/swag/cmd/swag@latest

  1. 3. Run the [Swag](https://github.com/swaggo/swag) in your Go project root folder which contains `main.go` file, [Swag](https://github.com/swaggo/swag) will parse comments and generate required files(`docs` folder and `docs/doc.go`).
  2. ```sh_ "github.com/swaggo/echo-swagger/v2/example/docs"
  3. $ swag init
  1. Download echo-swagger by using:
    1. $ go get -u github.com/swaggo/echo-swagger

And import following in your code:

  1. import "github.com/swaggo/echo-swagger" // echo-swagger middleware

Canonical example:

  1. package main
  2. import (
  3. "github.com/labstack/echo/v4"
  4. "github.com/swaggo/echo-swagger"
  5. _ "github.com/swaggo/echo-swagger/example/docs" // docs is generated by Swag CLI, you have to import it.
  6. )
  7. // @title Swagger Example API
  8. // @version 1.0
  9. // @description This is a sample server Petstore server.
  10. // @termsOfService http://swagger.io/terms/
  11. // @contact.name API Support
  12. // @contact.url http://www.swagger.io/support
  13. // @contact.email support@swagger.io
  14. // @license.name Apache 2.0
  15. // @license.url http://www.apache.org/licenses/LICENSE-2.0.html
  16. // @host petstore.swagger.io
  17. // @BasePath /v2
  18. func main() {
  19. e := echo.New()
  20. e.GET("/swagger/*", echoSwagger.WrapHandler)
  21. e.Logger.Fatal(e.Start(":1323"))
  22. }
  1. Run it, and browser to http://localhost:1323/swagger/index.html, you can see Swagger 2.0 Api documents.

swagger_index.html

Note: If you are using Gzip middleware you should add the swagger endpoint to skipper

Example

  1. e.Use(middleware.GzipWithConfig(middleware.GzipConfig{
  2. Skipper: func(c echo.Context) bool {
  3. if strings.Contains(c.Request().URL.Path, "swagger") {
  4. return true
  5. }
  6. return false
  7. },
  8. }))