Add openapi API documentation (#294)

* Initial version

- Add OpenAPI documentation generator
- Update README.md to remove endpoint documentations

* Adds new endpoints

- Fixes build with swag
- Adds new endpoints

* Adds more endpoints documentation

- Also removes swag from Dockerfile and build script

* Finally adds all endpoints documentation

* Initial version

- Add OpenAPI documentation generator
- Update README.md to remove endpoint documentations

* Adds new endpoints

- Fixes build with swag
- Adds new endpoints

* Adds more endpoints documentation

- Also removes swag from Dockerfile and build script

* Finally adds all endpoints documentation

* Update README (#1)

* Update README

I completely redid the `README.md`. Now it's much easier to read and understand.

---------

Co-authored-by: cocool97 <34218602+cocool97@users.noreply.github.com>

* Improves documentation

* Delete server/config.db

* Update README.md

* Update README.md

* fix download in api docs

* add api docs to web

---------

Co-authored-by: Shadeov <144587546+shadeov@users.noreply.github.com>
Co-authored-by: nikk gitanes <tsynik@gmail.com>
This commit is contained in:
cocool97
2023-11-13 07:59:23 +01:00
committed by GitHub
parent aa061fd24c
commit b72c66d433
32 changed files with 5375 additions and 2024 deletions

View File

@@ -23,6 +23,9 @@ import (
"server/web/blocker"
"server/web/pages"
"server/web/sslcerts"
swaggerFiles "github.com/swaggo/files" // swagger embed files
ginSwagger "github.com/swaggo/gin-swagger" // gin-swagger middleware
)
var (
@@ -30,6 +33,18 @@ var (
waitChan = make(chan error)
)
// @title Swagger Torrserver API
// @version {version.Version}
// @description Torrent streaming server.
// @license.name GPL 3.0
// @BasePath /
// @securityDefinitions.basic BasicAuth
// @externalDocs.description OpenAPI
// @externalDocs.url https://swagger.io/resources/open-api/
func Start() {
log.TLogln("Start TorrServer " + version.Version + " torrent " + version.GetTorrentVersion())
ips := getLocalIps()
@@ -72,6 +87,8 @@ func Start() {
if settings.BTsets.EnableDLNA {
dlna.Start()
}
route.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
//check if https enabled
if settings.Ssl {
@@ -113,6 +130,16 @@ func Stop() {
waitChan <- nil
}
// echo godoc
//
// @Summary Tests server status
// @Description Tests whether server is alive or not
//
// @Tags API
//
// @Produce plain
// @Success 200 {string} string "Server version"
// @Router /echo [get]
func echo(c *gin.Context) {
c.String(200, "%v", version.Version)
}