Add gin and swagger to http-server
This commit is contained in:
parent
c112af1f84
commit
1e469dda3c
|
@ -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
7
cmd/http-server/types.go
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
type Account struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
type ErrorResponse struct {
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user