From 0af5d01adee3e23562dd62a5c76046ba9920b9e9 Mon Sep 17 00:00:00 2001 From: Yehyeok Bang Date: Tue, 23 Jan 2024 10:14:27 +0900 Subject: [PATCH] =?UTF-8?q?[#28]=20docs:=20=EC=9E=90=EC=84=B8=20=EB=B6=84?= =?UTF-8?q?=EC=84=9D=20=EB=B3=B4=EA=B3=A0=EC=84=9C=20=EA=B4=80=EB=A0=A8=20?= =?UTF-8?q?API=20=EB=AC=B8=EC=84=9C=20=EC=B5=9C=EC=8B=A0=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/docs.go | 180 +++++++++++++++++++++++++++++++++++----------- docs/swagger.json | 180 +++++++++++++++++++++++++++++++++++----------- docs/swagger.yaml | 131 ++++++++++++++++++++++++--------- 3 files changed, 375 insertions(+), 116 deletions(-) diff --git a/docs/docs.go b/docs/docs.go index 6ecc1d5..a17f48d 100644 --- a/docs/docs.go +++ b/docs/docs.go @@ -15,9 +15,14 @@ const docTemplate = `{ "host": "{{.Host}}", "basePath": "{{.BasePath}}", "paths": { - "/health": { + "/analysis": { "get": { - "description": "서버가 정상 작동 중인지 확인합니다.", + "security": [ + { + "Bearer": [] + } + ], + "description": "로그인한 사용자의 자세 추정 결과를 조회합니다.", "consumes": [ "application/json" ], @@ -25,22 +30,31 @@ const docTemplate = `{ "application/json" ], "tags": [ - "HealthCheck" + "Reports" ], - "summary": "서버 상태 확인", + "summary": "자세 추정 결과 조회", "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/global.Response" } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/global.Response" + } } } - } - }, - "/login": { + }, "post": { - "description": "토큰을 반환합니다. (첫 로그인 시 회원가입이 진행 후 토큰을 반환합니다.)", + "security": [ + { + "Bearer": [] + } + ], + "description": "자세를 추정합니다. (동영상 URL을 입력받아 자세를 추정합니다.)", "consumes": [ "application/json" ], @@ -48,17 +62,17 @@ const docTemplate = `{ "application/json" ], "tags": [ - "Users" + "Reports" ], - "summary": "로그인 (첫 로그인 시 회원가입)", + "summary": "자세 추정 요청", "parameters": [ { - "description": "사용자 정보", - "name": "user", + "description": "동영상 URL", + "name": "video_url", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/types.RequestCreateUser" + "$ref": "#/definitions/types.RequestAnalysis" } } ], @@ -78,14 +92,14 @@ const docTemplate = `{ } } }, - "/predict": { + "/analysis/all": { "get": { "security": [ { "Bearer": [] } ], - "description": "로그인한 사용자의 자세 추정 결과를 조회합니다.", + "description": "자세 추정 결과를 조회합니다.", "consumes": [ "application/json" ], @@ -95,7 +109,7 @@ const docTemplate = `{ "tags": [ "Reports" ], - "summary": "자세 추정 결과 조회", + "summary": "자세 추정 결과 전체 조회 (테스트용)", "responses": { "200": { "description": "OK", @@ -110,14 +124,16 @@ const docTemplate = `{ } } } - }, - "post": { + } + }, + "/analysis/summary": { + "get": { "security": [ { "Bearer": [] } ], - "description": "자세를 추정합니다. (동영상 URL을 입력받아 자세를 추정합니다.)", + "description": "로그인한 사용자의 자세 추정 결과를 월별로 요약하여 조회합니다.", "consumes": [ "application/json" ], @@ -127,16 +143,14 @@ const docTemplate = `{ "tags": [ "Reports" ], - "summary": "자세 추정 요청", + "summary": "자세 추정 결과 월별 요약 조회", "parameters": [ { - "description": "동영상 URL", - "name": "video_url", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/types.RequestPredict" - } + "type": "string", + "description": "조회할 년월 (YYYYMM)", + "name": "ym", + "in": "query", + "required": true } ], "responses": { @@ -155,14 +169,14 @@ const docTemplate = `{ } } }, - "/predict/all": { + "/analysis/{id}": { "get": { "security": [ { "Bearer": [] } ], - "description": "자세 추정 결과를 조회합니다.", + "description": "보고서 id로 자세 추정 결과를 조회합니다.", "consumes": [ "application/json" ], @@ -172,7 +186,79 @@ const docTemplate = `{ "tags": [ "Reports" ], - "summary": "자세 추정 결과 전체 조회 (테스트용)", + "summary": "자세 추정 결과 id로 조회", + "parameters": [ + { + "type": "integer", + "description": "자세 추정 결과 id", + "name": "id", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/global.Response" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/global.Response" + } + } + } + } + }, + "/health": { + "get": { + "description": "서버가 정상 작동 중인지 확인합니다.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "HealthCheck" + ], + "summary": "서버 상태 확인", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/global.Response" + } + } + } + } + }, + "/login": { + "post": { + "description": "토큰을 반환합니다. (첫 로그인 시 회원가입이 진행 후 토큰을 반환합니다.)", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Users" + ], + "summary": "로그인 (첫 로그인 시 회원가입)", + "parameters": [ + { + "description": "사용자 정보", + "name": "user", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/types.RequestCreateUser" + } + } + ], "responses": { "200": { "description": "OK", @@ -367,34 +453,46 @@ const docTemplate = `{ } } }, - "types.RequestCreateUser": { + "types.RequestAnalysis": { "type": "object", "required": [ - "email", - "name" + "alert_count", + "analysis_time", + "type", + "video_url" ], "properties": { - "age": { + "alert_count": { "type": "integer" }, - "email": { - "type": "string" + "analysis_time": { + "type": "integer" }, - "gender": { + "type": { "type": "string" }, - "name": { + "video_url": { "type": "string" } } }, - "types.RequestPredict": { + "types.RequestCreateUser": { "type": "object", "required": [ - "video_url" + "email", + "name" ], "properties": { - "video_url": { + "age": { + "type": "integer" + }, + "email": { + "type": "string" + }, + "gender": { + "type": "string" + }, + "name": { "type": "string" } } diff --git a/docs/swagger.json b/docs/swagger.json index a8ab37f..fe88829 100644 --- a/docs/swagger.json +++ b/docs/swagger.json @@ -4,9 +4,14 @@ "contact": {} }, "paths": { - "/health": { + "/analysis": { "get": { - "description": "서버가 정상 작동 중인지 확인합니다.", + "security": [ + { + "Bearer": [] + } + ], + "description": "로그인한 사용자의 자세 추정 결과를 조회합니다.", "consumes": [ "application/json" ], @@ -14,22 +19,31 @@ "application/json" ], "tags": [ - "HealthCheck" + "Reports" ], - "summary": "서버 상태 확인", + "summary": "자세 추정 결과 조회", "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/global.Response" } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/global.Response" + } } } - } - }, - "/login": { + }, "post": { - "description": "토큰을 반환합니다. (첫 로그인 시 회원가입이 진행 후 토큰을 반환합니다.)", + "security": [ + { + "Bearer": [] + } + ], + "description": "자세를 추정합니다. (동영상 URL을 입력받아 자세를 추정합니다.)", "consumes": [ "application/json" ], @@ -37,17 +51,17 @@ "application/json" ], "tags": [ - "Users" + "Reports" ], - "summary": "로그인 (첫 로그인 시 회원가입)", + "summary": "자세 추정 요청", "parameters": [ { - "description": "사용자 정보", - "name": "user", + "description": "동영상 URL", + "name": "video_url", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/types.RequestCreateUser" + "$ref": "#/definitions/types.RequestAnalysis" } } ], @@ -67,14 +81,14 @@ } } }, - "/predict": { + "/analysis/all": { "get": { "security": [ { "Bearer": [] } ], - "description": "로그인한 사용자의 자세 추정 결과를 조회합니다.", + "description": "자세 추정 결과를 조회합니다.", "consumes": [ "application/json" ], @@ -84,7 +98,7 @@ "tags": [ "Reports" ], - "summary": "자세 추정 결과 조회", + "summary": "자세 추정 결과 전체 조회 (테스트용)", "responses": { "200": { "description": "OK", @@ -99,14 +113,16 @@ } } } - }, - "post": { + } + }, + "/analysis/summary": { + "get": { "security": [ { "Bearer": [] } ], - "description": "자세를 추정합니다. (동영상 URL을 입력받아 자세를 추정합니다.)", + "description": "로그인한 사용자의 자세 추정 결과를 월별로 요약하여 조회합니다.", "consumes": [ "application/json" ], @@ -116,16 +132,14 @@ "tags": [ "Reports" ], - "summary": "자세 추정 요청", + "summary": "자세 추정 결과 월별 요약 조회", "parameters": [ { - "description": "동영상 URL", - "name": "video_url", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/types.RequestPredict" - } + "type": "string", + "description": "조회할 년월 (YYYYMM)", + "name": "ym", + "in": "query", + "required": true } ], "responses": { @@ -144,14 +158,14 @@ } } }, - "/predict/all": { + "/analysis/{id}": { "get": { "security": [ { "Bearer": [] } ], - "description": "자세 추정 결과를 조회합니다.", + "description": "보고서 id로 자세 추정 결과를 조회합니다.", "consumes": [ "application/json" ], @@ -161,7 +175,79 @@ "tags": [ "Reports" ], - "summary": "자세 추정 결과 전체 조회 (테스트용)", + "summary": "자세 추정 결과 id로 조회", + "parameters": [ + { + "type": "integer", + "description": "자세 추정 결과 id", + "name": "id", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/global.Response" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/global.Response" + } + } + } + } + }, + "/health": { + "get": { + "description": "서버가 정상 작동 중인지 확인합니다.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "HealthCheck" + ], + "summary": "서버 상태 확인", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/global.Response" + } + } + } + } + }, + "/login": { + "post": { + "description": "토큰을 반환합니다. (첫 로그인 시 회원가입이 진행 후 토큰을 반환합니다.)", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Users" + ], + "summary": "로그인 (첫 로그인 시 회원가입)", + "parameters": [ + { + "description": "사용자 정보", + "name": "user", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/types.RequestCreateUser" + } + } + ], "responses": { "200": { "description": "OK", @@ -356,34 +442,46 @@ } } }, - "types.RequestCreateUser": { + "types.RequestAnalysis": { "type": "object", "required": [ - "email", - "name" + "alert_count", + "analysis_time", + "type", + "video_url" ], "properties": { - "age": { + "alert_count": { "type": "integer" }, - "email": { - "type": "string" + "analysis_time": { + "type": "integer" }, - "gender": { + "type": { "type": "string" }, - "name": { + "video_url": { "type": "string" } } }, - "types.RequestPredict": { + "types.RequestCreateUser": { "type": "object", "required": [ - "video_url" + "email", + "name" ], "properties": { - "video_url": { + "age": { + "type": "integer" + }, + "email": { + "type": "string" + }, + "gender": { + "type": "string" + }, + "name": { "type": "string" } } diff --git a/docs/swagger.yaml b/docs/swagger.yaml index cf9ffae..6f21292 100644 --- a/docs/swagger.yaml +++ b/docs/swagger.yaml @@ -7,6 +7,22 @@ definitions: status: type: integer type: object + types.RequestAnalysis: + properties: + alert_count: + type: integer + analysis_time: + type: integer + type: + type: string + video_url: + type: string + required: + - alert_count + - analysis_time + - type + - video_url + type: object types.RequestCreateUser: properties: age: @@ -21,13 +37,6 @@ definitions: - email - name type: object - types.RequestPredict: - properties: - video_url: - type: string - required: - - video_url - type: object types.RequestUpdateUser: properties: age: @@ -40,11 +49,11 @@ definitions: info: contact: {} paths: - /health: + /analysis: get: consumes: - application/json - description: 서버가 정상 작동 중인지 확인합니다. + description: 로그인한 사용자의 자세 추정 결과를 조회합니다. produces: - application/json responses: @@ -52,21 +61,26 @@ paths: description: OK schema: $ref: '#/definitions/global.Response' - summary: 서버 상태 확인 + "400": + description: Bad Request + schema: + $ref: '#/definitions/global.Response' + security: + - Bearer: [] + summary: 자세 추정 결과 조회 tags: - - HealthCheck - /login: + - Reports post: consumes: - application/json - description: 토큰을 반환합니다. (첫 로그인 시 회원가입이 진행 후 토큰을 반환합니다.) + description: 자세를 추정합니다. (동영상 URL을 입력받아 자세를 추정합니다.) parameters: - - description: 사용자 정보 + - description: 동영상 URL in: body - name: user + name: video_url required: true schema: - $ref: '#/definitions/types.RequestCreateUser' + $ref: '#/definitions/types.RequestAnalysis' produces: - application/json responses: @@ -78,14 +92,22 @@ paths: description: Bad Request schema: $ref: '#/definitions/global.Response' - summary: 로그인 (첫 로그인 시 회원가입) + security: + - Bearer: [] + summary: 자세 추정 요청 tags: - - Users - /predict: + - Reports + /analysis/{id}: get: consumes: - application/json - description: 로그인한 사용자의 자세 추정 결과를 조회합니다. + description: 보고서 id로 자세 추정 결과를 조회합니다. + parameters: + - description: 자세 추정 결과 id + in: path + name: id + required: true + type: integer produces: - application/json responses: @@ -99,20 +121,14 @@ paths: $ref: '#/definitions/global.Response' security: - Bearer: [] - summary: 자세 추정 결과 조회 + summary: 자세 추정 결과 id로 조회 tags: - Reports - post: + /analysis/all: + get: consumes: - application/json - description: 자세를 추정합니다. (동영상 URL을 입력받아 자세를 추정합니다.) - parameters: - - description: 동영상 URL - in: body - name: video_url - required: true - schema: - $ref: '#/definitions/types.RequestPredict' + description: 자세 추정 결과를 조회합니다. produces: - application/json responses: @@ -126,14 +142,20 @@ paths: $ref: '#/definitions/global.Response' security: - Bearer: [] - summary: 자세 추정 요청 + summary: 자세 추정 결과 전체 조회 (테스트용) tags: - Reports - /predict/all: + /analysis/summary: get: consumes: - application/json - description: 자세 추정 결과를 조회합니다. + description: 로그인한 사용자의 자세 추정 결과를 월별로 요약하여 조회합니다. + parameters: + - description: 조회할 년월 (YYYYMM) + in: query + name: ym + required: true + type: string produces: - application/json responses: @@ -147,9 +169,50 @@ paths: $ref: '#/definitions/global.Response' security: - Bearer: [] - summary: 자세 추정 결과 전체 조회 (테스트용) + summary: 자세 추정 결과 월별 요약 조회 tags: - Reports + /health: + get: + consumes: + - application/json + description: 서버가 정상 작동 중인지 확인합니다. + produces: + - application/json + responses: + "200": + description: OK + schema: + $ref: '#/definitions/global.Response' + summary: 서버 상태 확인 + tags: + - HealthCheck + /login: + post: + consumes: + - application/json + description: 토큰을 반환합니다. (첫 로그인 시 회원가입이 진행 후 토큰을 반환합니다.) + parameters: + - description: 사용자 정보 + in: body + name: user + required: true + schema: + $ref: '#/definitions/types.RequestCreateUser' + produces: + - application/json + responses: + "200": + description: OK + schema: + $ref: '#/definitions/global.Response' + "400": + description: Bad Request + schema: + $ref: '#/definitions/global.Response' + summary: 로그인 (첫 로그인 시 회원가입) + tags: + - Users /users/me: delete: consumes: