diff --git a/Makefile b/Makefile index 6abc865..907f517 100644 --- a/Makefile +++ b/Makefile @@ -51,7 +51,7 @@ docker-dev: api-docs: swag fmt -g ./cmd/$(project_name)/main.go \ - && swag init --parseDependency -g ./cmd/$(project_name)/main.go -o ./api + && swag init --outputTypes json,yaml --parseDependency -g ./cmd/$(project_name)/main.go -o ./pkg/swagger/docs view-docs: php -S 127.0.0.1:8080 -t ./api diff --git a/api b/api new file mode 120000 index 0000000..e54833c --- /dev/null +++ b/api @@ -0,0 +1 @@ +pkg/swagger/docs \ No newline at end of file diff --git a/api/go.mod b/api/go.mod deleted file mode 100644 index d19d7d7..0000000 --- a/api/go.mod +++ /dev/null @@ -1 +0,0 @@ -module dummy diff --git a/build/package/Dockerfile b/build/package/Dockerfile index eb79180..2458f9c 100644 --- a/build/package/Dockerfile +++ b/build/package/Dockerfile @@ -22,7 +22,7 @@ COPY . . RUN sed -i "s/{APP_VERSION}/${APP_VERSION}/g" ./cmd/${APP}/main.go # Generate swagger docs -RUN swag init --parseDependency -g ./cmd/${APP}/main.go -o ./api +RUN go generate ./... # Builds the application as a staticly linked one, to allow it to run on alpine # RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -installsuffix cgo -o app . @@ -37,7 +37,6 @@ RUN apk add --no-cache tzdata COPY scripts/docker-entrypoint.sh /docker-entrypoint.sh -COPY --from=build /go/src/api /app/api COPY --from=build /go/src/app /app # Exposes port 3000 because our program listens on that port diff --git a/internal/sms-gateway/handlers/root.go b/internal/sms-gateway/handlers/root.go index 5250fcc..4f8c1bd 100644 --- a/internal/sms-gateway/handlers/root.go +++ b/internal/sms-gateway/handlers/root.go @@ -1,7 +1,11 @@ package handlers import ( + "net/http" + + "github.com/capcom6/sms-gateway/pkg/swagger" "github.com/gofiber/fiber/v2" + "github.com/gofiber/fiber/v2/middleware/filesystem" ) type rootHandler struct { @@ -18,7 +22,12 @@ func (h *rootHandler) Register(app *fiber.App) { }) h.healthHandler.Register(app) - app.Static("/api", "api") + app.Use("/api", filesystem.New(filesystem.Config{ + Root: http.FS(swagger.Docs), + PathPrefix: "docs", + MaxAge: 1 * 24 * 60 * 60, + })) + // app.Static("/api", "api") } func newRootHandler(healthHandler *healthHandler) *rootHandler { diff --git a/api/favicon-16x16.png b/pkg/swagger/docs/favicon-16x16.png similarity index 100% rename from api/favicon-16x16.png rename to pkg/swagger/docs/favicon-16x16.png diff --git a/api/favicon-32x32.png b/pkg/swagger/docs/favicon-32x32.png similarity index 100% rename from api/favicon-32x32.png rename to pkg/swagger/docs/favicon-32x32.png diff --git a/api/index.html b/pkg/swagger/docs/index.html similarity index 100% rename from api/index.html rename to pkg/swagger/docs/index.html diff --git a/api/local.http b/pkg/swagger/docs/local.http similarity index 100% rename from api/local.http rename to pkg/swagger/docs/local.http diff --git a/api/mobile.http b/pkg/swagger/docs/mobile.http similarity index 100% rename from api/mobile.http rename to pkg/swagger/docs/mobile.http diff --git a/api/requests.http b/pkg/swagger/docs/requests.http similarity index 100% rename from api/requests.http rename to pkg/swagger/docs/requests.http diff --git a/api/swagger-ui-bundle.js b/pkg/swagger/docs/swagger-ui-bundle.js similarity index 100% rename from api/swagger-ui-bundle.js rename to pkg/swagger/docs/swagger-ui-bundle.js diff --git a/api/swagger-ui-standalone-preset.js b/pkg/swagger/docs/swagger-ui-standalone-preset.js similarity index 100% rename from api/swagger-ui-standalone-preset.js rename to pkg/swagger/docs/swagger-ui-standalone-preset.js diff --git a/api/swagger-ui.css b/pkg/swagger/docs/swagger-ui.css similarity index 100% rename from api/swagger-ui.css rename to pkg/swagger/docs/swagger-ui.css diff --git a/api/swagger.json b/pkg/swagger/docs/swagger.json similarity index 100% rename from api/swagger.json rename to pkg/swagger/docs/swagger.json diff --git a/api/swagger.yaml b/pkg/swagger/docs/swagger.yaml similarity index 100% rename from api/swagger.yaml rename to pkg/swagger/docs/swagger.yaml diff --git a/pkg/swagger/swagger.go b/pkg/swagger/swagger.go new file mode 100644 index 0000000..d67c0ad --- /dev/null +++ b/pkg/swagger/swagger.go @@ -0,0 +1,8 @@ +package swagger + +import "embed" + +//go:generate swag init --parseDependency --outputTypes json,yaml -d ../../ -g ./cmd/sms-gateway/main.go -o ../../pkg/swagger/docs + +//go:embed docs/*.png docs/*.js docs/*.css docs/swagger.* docs/*.html +var Docs embed.FS