add swagger docs
This commit is contained in:
@@ -2,6 +2,7 @@ package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
_ "embed"
|
||||
"log"
|
||||
"net"
|
||||
"net/http"
|
||||
@@ -14,17 +15,24 @@ import (
|
||||
"github.com/joho/godotenv"
|
||||
"google.golang.org/grpc"
|
||||
"google.golang.org/grpc/credentials/insecure"
|
||||
|
||||
"github.com/swaggest/swgui/v5emb"
|
||||
)
|
||||
|
||||
//go:embed main.swagger.json
|
||||
var swaggerJSON []byte
|
||||
|
||||
func main() {
|
||||
_ = godotenv.Load()
|
||||
|
||||
// PostgreSQL
|
||||
dbpool, err := pgxpool.New(context.Background(), os.Getenv("DATABASE_URL"))
|
||||
if err != nil {
|
||||
log.Fatalf("Unable to create connection pool: %v\n", err)
|
||||
}
|
||||
defer dbpool.Close()
|
||||
|
||||
// Test request to DB
|
||||
var greeting string
|
||||
if err = dbpool.QueryRow(context.Background(), "select 'Hello, world!'").Scan(&greeting); err != nil {
|
||||
log.Fatalf("QueryRow failed: %v\n", err)
|
||||
@@ -63,11 +71,22 @@ func main() {
|
||||
log.Fatalln("Failed to register gateway:", err)
|
||||
}
|
||||
|
||||
mainMux := http.NewServeMux()
|
||||
|
||||
docsHandler := v5emb.New("API", "/swagger/doc.json", "/docs/")
|
||||
mainMux.Handle("/docs/", docsHandler)
|
||||
mainMux.HandleFunc("/swagger/doc.json", func(w http.ResponseWriter, r *http.Request) {
|
||||
w.Header().Set("Content-Type", "application/json")
|
||||
w.Write(swaggerJSON)
|
||||
})
|
||||
mainMux.Handle("/api/", gwmux)
|
||||
|
||||
gwServer := &http.Server{
|
||||
Addr: ":8090",
|
||||
Handler: gwmux,
|
||||
Handler: mainMux,
|
||||
}
|
||||
|
||||
log.Println("Serving gRPC-Gateway on http://0.0.0.0:8090")
|
||||
log.Println("Serving docs on http://0.0.0.0:8090/docs")
|
||||
log.Fatalln(gwServer.ListenAndServe())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user