package
0.0.0-20241219012652-6f02d0cd6037
Repository: https://github.com/mukappalambda/go-examples.git
Documentation: pkg.go.dev

# Packages

No description provided by the author

# README

How to use Swagger

Check the go version:

$ go version
go version go1.19.3 linux/amd64

Install swag (github: swaggo/swag):

$ go install github.com/swaggo/swag/cmd/swag@latest
$ swag -v
swag version v1.8.9

Create the project directory, and install go libraries: Ref: gofiber/swagger

$ mkdir fiber-swagger
$ cd fiber-swagger

$ go mod init github.com/mukappalambda/fiber-swagger
$ go get -u github.com/gofiber/fiber/v2
$ go get -u github.com/gofiber/swagger

Edit the file main.go:

package main

import (
        "log"

        "github.com/gofiber/fiber/v2"
        "github.com/gofiber/swagger"
)

// @title                       Fiber Example API
// @version             1.0
// @description This is a sample swagger for Fiber
// @termsOfService      http://swagger.io/terms/
// @contact.name        API Support
// @contact.email       [email protected]
// @license.name        Apache 2.0
// @license.url http://www.apache.org/licenses/LICENSE-2.0.html
// @host                        localhost:8080
// @BasePath            /
func main() {
        app := fiber.New()
        app.Get("/docs/*", swagger.HandlerDefault)

        app.Get("/users/", GetAllUsers)
        log.Fatal(app.Listen(":8080"))

}

// GetAllUsers is a function to get all users data from database
//
//      @Summary                Get all users
//      @Description    Get all users
//      @Tags                   users
//      @Router                 /users [get]
func GetAllUsers(c *fiber.Ctx) error {
        return c.Send([]byte("All books"))
}

Current project directory layout:

.
├── go.mod
├── go.sum
└── main.go

0 directories, 3 files

Create the docs:

$ swag init
2022/12/18 13:10:18 Generate swagger docs....
2022/12/18 13:10:18 Generate general API Info, search dir:./
2022/12/18 13:10:18 create docs.go at  docs/docs.go
2022/12/18 13:10:18 create swagger.json at  docs/swagger.json
2022/12/18 13:10:18 create swagger.yaml at  docs/swagger.yaml

Current project directory layout:

.
├── docs
│   ├── docs.go
│   ├── swagger.json
│   └── swagger.yaml
├── go.mod
├── go.sum
└── main.go

1 directory, 6 files

Import the docs in main.go

import (
        "log"

        "github.com/gofiber/fiber/v2"
        "github.com/gofiber/swagger"
        _ "github.com/mukappalambda/fiber-swagger/docs"
)

Run main.go:

$ go run main.go

 ┌───────────────────────────────────────────────────┐
 │                   Fiber v2.40.1                   │
 │               http://127.0.0.1:8080               │
 │       (bound on host 0.0.0.0 and port 8080)       │
 │                                                   │
 │ Handlers ............. 4  Processes ........... 1 │
 │ Prefork ....... Disabled  PID ............. 78249 │
 └───────────────────────────────────────────────────┘

Visit http://localhost:8080/docs/, and you will see the docs generated by swagger.