From 49c38444066c89d7258fd85d114d9d74babb8d55 Mon Sep 17 00:00:00 2001 From: Derrick Hammer Date: Sun, 30 Apr 2023 02:18:42 -0400 Subject: [PATCH] feat: add swagger support --- main.go | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/main.go b/main.go index cc7fa9b..24a95ca 100644 --- a/main.go +++ b/main.go @@ -4,8 +4,10 @@ import ( "embed" "git.lumeweb.com/LumeWeb/portal/config" "git.lumeweb.com/LumeWeb/portal/db" - "git.lumeweb.com/LumeWeb/portal/renterd" + _ "git.lumeweb.com/LumeWeb/portal/docs" "git.lumeweb.com/LumeWeb/portal/service" + "github.com/iris-contrib/swagger" + "github.com/iris-contrib/swagger/swaggerFiles" "github.com/kataras/iris/v12" "github.com/kataras/iris/v12/mvc" "log" @@ -15,6 +17,19 @@ import ( //go:embed app/* var embedFrontend embed.FS +// @title Lume Web Portal +// @version 1.0 +// @description A decentralized data storage portal for the open web + +// @contact.name Lume Web Project +// @contact.url https://lumeweb.com +// @contact.email contact@lumeweb.com + +// @license.name MIT +// @license.url https://opensource.org/license/mit/ + +// @externalDocs.description OpenAPI +// @externalDocs.url https://swagger.io/resources/open-api/ func main() { // Initialize the configuration settings config.Init() @@ -40,8 +55,23 @@ func main() { app.Handle(new(service.AuthService)) }) + config := swagger.Config{ + // The url pointing to API definition. + URL: "http://localhost:8080/swagger/doc.json", + DeepLinking: true, + DocExpansion: "list", + DomID: "#swagger-ui", + // The UI prefix URL (see route). + Prefix: "/swagger", + } + swaggerUI := swagger.Handler(swaggerFiles.Handler, config) + + app.Get("/swagger", swaggerUI) + // And the wildcard one for index.html, *.js, *.css and e.t.c. + app.Get("/swagger/{any:path}", swaggerUI) + // Start the renterd process in a goroutine - go renterd.Main() + //go renterd.Main() // Start the Iris app and listen for incoming requests on port 80 log.Fatal(app.Listen(":80"))