Add gin and swagger to http-server

This commit is contained in:
qowevisa 2024-08-02 18:14:06 +03:00
parent c112af1f84
commit 1e469dda3c
2 changed files with 70 additions and 5 deletions

View File

@ -2,18 +2,76 @@ package main
import ( import (
"fmt" "fmt"
"net/http"
"github.com/swaggo/files"
"github.com/swaggo/gin-swagger"
"git.qowevisa.me/Qowevisa/gonuts/db" "git.qowevisa.me/Qowevisa/gonuts/db"
docs "git.qowevisa.me/Qowevisa/gonuts/docs"
"github.com/gin-gonic/gin"
) )
// @title Swagger Example API
// @version 1.0
// @description This is a sample server celler 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 localhost:3000
// @BasePath /api
func main() { func main() {
dbc := db.Connect() dbc := db.Connect()
if dbc != nil { if dbc != nil {
fmt.Printf("yay\n") fmt.Printf("yay\n")
} }
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { r := gin.Default()
fmt.Fprintf(w, "Hello, World!") docs.SwaggerInfo.BasePath = "/api"
})
http.ListenAndServe(":8080", nil) // Routes defined in the routes package
routes := r.Group("/api")
{
routes.GET("/home", getHome)
routes.GET("/user/:name", getUser)
}
r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
r.Run(":3000")
}
// @Summary Says hello
// @Description Get an account by ID
// @Tags hello hello2
// @Accept json
// @Produce json
// @Param id path int true "Account ID"
// @Success 200 {object} Account
// @Failure 400 {object} ErrorResponse
// @Router /home [get]
func getHome(c *gin.Context) {
c.JSON(200, gin.H{
"message": "Welcome to the API!",
})
}
// @Summary Says hello1
// @Description Get an account by ID1
// @Tags hello hello2
// @Accept json
// @Produce json
// @Param id path int true "Account ID"
// @Success 200 {object} Account
// @Failure 400 {object} ErrorResponse
// @Router /accounts/{id} [get]
func getUser(c *gin.Context) {
name := c.Param("name")
c.JSON(200, gin.H{
"message": "Hello, " + name + "!",
})
} }

7
cmd/http-server/types.go Normal file
View File

@ -0,0 +1,7 @@
package main
type Account struct {
}
type ErrorResponse struct {
}