From a1b5f901ebf028d6cd60a6b829336b75cb5839e6 Mon Sep 17 00:00:00 2001 From: minpeter Date: Sat, 23 Mar 2024 08:33:14 +0900 Subject: [PATCH] Refactor API routes and add root endpoint --- controllers/files.go | 4 +-- doc/openapi.json | 2 +- main.go | 81 ++------------------------------------------ 3 files changed, 5 insertions(+), 82 deletions(-) diff --git a/controllers/files.go b/controllers/files.go index 1a8c3e9..01cc069 100644 --- a/controllers/files.go +++ b/controllers/files.go @@ -32,11 +32,9 @@ type FilesCreate struct { func (rs FilesRessources) Routes(s *fuego.Server) { filesGroup := fuego.Group(s, "/files") - fuego.Get(filesGroup, "/", rs.getAllFiles) fuego.Post(filesGroup, "/", rs.postFiles) - - fuego.GetStd(filesGroup, "/{id}/{name}", rs.downloadFile) + fuego.GetStd(filesGroup, "/{id}/{name}", rs.downloadFile).Tags("files") fuego.Get(filesGroup, "/{id}", rs.getFiles) fuego.Delete(filesGroup, "/{id}", rs.deleteFiles) } diff --git a/doc/openapi.json b/doc/openapi.json index 3131ea5..8b657ab 100644 --- a/doc/openapi.json +++ b/doc/openapi.json @@ -1 +1 @@ -{"components":{"schemas":{"Files":{"properties":{"data":{},"error":{"type":"string"},"message":{"type":"string"}},"type":"object"},"unknown-interface":{}}},"info":{"description":"OpenAPI","title":"OpenAPI","version":"0.0.1"},"openapi":"3.0.3","paths":{"/files/":{"get":{"description":"controller: github.com/tempfiles-Team/tempfiles-backend/controllers.FilesRessources.getAllFiles","operationId":"GET /files/:getAllFiles","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Files"}}},"description":"OK"},"default":{"description":""}},"summary":"getAllFiles","tags":["Files"]},"post":{"description":"controller: github.com/tempfiles-Team/tempfiles-backend/controllers.FilesRessources.postFiles","operationId":"POST /files/:postFiles","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Files"}}},"description":"OK"},"default":{"description":""}},"summary":"postFiles","tags":["Files"]}},"/files/{id}":{"delete":{"description":"controller: github.com/tempfiles-Team/tempfiles-backend/controllers.FilesRessources.deleteFiles","operationId":"DELETE /files/{id}:deleteFiles","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Files"}}},"description":"OK"},"default":{"description":""}},"summary":"deleteFiles","tags":["Files"]},"get":{"description":"controller: github.com/tempfiles-Team/tempfiles-backend/controllers.FilesRessources.getFiles","operationId":"GET /files/{id}:getFiles","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Files"}}},"description":"OK"},"default":{"description":""}},"summary":"getFiles","tags":["Files"]}},"/files/{id}/{name}":{"get":{"description":"controller: github.com/tempfiles-Team/tempfiles-backend/controllers.FilesRessources.downloadFile","operationId":"GET /files/{id}/{name}:downloadFile","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/unknown-interface"}}},"description":"OK"},"default":{"description":""}},"summary":"downloadFile"}}}} \ No newline at end of file +{"components":{"schemas":{"Files":{"properties":{"data":{},"error":{"type":"string"},"message":{"type":"string"}},"type":"object"},"string":{"type":"string"},"unknown-interface":{}}},"info":{"description":"OpenAPI","title":"OpenAPI","version":"0.0.1"},"openapi":"3.0.3","paths":{"/":{"get":{"description":"controller: main.main.func3","operationId":"GET /:func3","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/string"}}},"description":"OK"},"default":{"description":""}},"summary":"func3","tags":["string"]}},"/files/":{"get":{"description":"controller: github.com/tempfiles-Team/tempfiles-backend/controllers.FilesRessources.getAllFiles","operationId":"GET /files/:getAllFiles","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Files"}}},"description":"OK"},"default":{"description":""}},"summary":"getAllFiles","tags":["Files"]},"post":{"description":"controller: github.com/tempfiles-Team/tempfiles-backend/controllers.FilesRessources.postFiles","operationId":"POST /files/:postFiles","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Files"}}},"description":"OK"},"default":{"description":""}},"summary":"postFiles","tags":["Files"]}},"/files/{id}":{"delete":{"description":"controller: github.com/tempfiles-Team/tempfiles-backend/controllers.FilesRessources.deleteFiles","operationId":"DELETE /files/{id}:deleteFiles","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Files"}}},"description":"OK"},"default":{"description":""}},"summary":"deleteFiles","tags":["Files"]},"get":{"description":"controller: github.com/tempfiles-Team/tempfiles-backend/controllers.FilesRessources.getFiles","operationId":"GET /files/{id}:getFiles","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Files"}}},"description":"OK"},"default":{"description":""}},"summary":"getFiles","tags":["Files"]}},"/files/{id}/{name}":{"get":{"description":"controller: github.com/tempfiles-Team/tempfiles-backend/controllers.FilesRessources.downloadFile","operationId":"GET /files/{id}/{name}:downloadFile","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/unknown-interface"}}},"description":"OK"},"default":{"description":""}},"summary":"downloadFile","tags":["files"]}}}} \ No newline at end of file diff --git a/main.go b/main.go index 1b8546c..48bcd0f 100644 --- a/main.go +++ b/main.go @@ -82,84 +82,9 @@ func main() { log.Fatalf("failed to create db engine: %v", err) } - // app.GET("/", func(c *gin.Context) { - // c.JSON(200, gin.H{ - // "message": "api is working normally :)", - // }) - // }) - - // app.GET("/info", func(c *gin.Context) { - // apiName := c.Query("api") - - // scheme := "http" - // if c.Request.TLS != nil || c.Request.Header.Get("X-Forwarded-Proto") == "https" { - // scheme = "https" - // } - - // baseUrl := scheme + "://" + c.Request.Host - - // switch apiName { - // case "upload": - // c.JSON(200, gin.H{ - // "apiName": "/upload", - // "method": "POST", - // "desc": "특정 파일을 서버에 업로드합니다.", - // "command": "curl -LX POST -F 'file=@[filepath or filename]' " + baseUrl + "/upload", - // }) - // case "list": - // c.JSON(200, gin.H{ - // "apiName": "/list", - // "method": "GET", - // "desc": "서버에 존재하는 파일 리스트를 반환합니다.", - // "command": "curl -L " + baseUrl + "/list", - // }) - // case "file": - // c.JSON(200, gin.H{ - // "apiName": "/file/[file_id]", - // "method": "GET", - // "desc": "서버에 존재하는 특정 파일에 대한 세부 정보를 반환합니다.", - // "command": "curl -L " + baseUrl + "/file/[file_id]", - // }) - // case "del": - // c.JSON(200, gin.H{ - // "apiName": "/del/[file_id]", - // "method": "DELETE", - // "desc": "서버에 존재하는 특정 파일을 삭제합니다.", - // "command": "curl -LX DELETE " + baseUrl + "/del/[file_id]", - // }) - // case "dl": - // c.JSON(200, gin.H{ - // "apiName": "/dl/[file_id]", - // "method": "GET", - // "desc": "서버에 존재하는 특정 파일을 다운로드 합니다.", - // "command": "curl -LO " + baseUrl + "/dl/[file_id]", - // }) - // default: - // c.JSON(200, []gin.H{ - // { - // "apiUrl": baseUrl + "/upload", - // "apiHandler": "upload", - // }, - // { - - // "apiUrl": baseUrl + "/list", - // "apiHandler": "list", - // }, - // { - // "apiUrl": baseUrl + "/file/[file_id]", - // "apiHandler": "file", - // }, - // { - // "apiUrl": baseUrl + "/del/[file_id]", - // "apiHandler": "del", - // }, - // { - // "apiUrl": baseUrl + "/dl/[file_id]", - // "apiHandler": "dl", - // }, - // }) - // } - // }) + fuego.Get(s, "/", func(c fuego.ContextNoBody) (string, error) { + return "TEMPFILES API WORKING 🚀\nIf you want to use the API, go to '/swagger'", nil + }) controller.FilesRessources{}.Routes(s)