Repository navigation
Expand file tree
/
Copy pathapi-docs.json
More file actions
1 lines (1 loc) · 5.92 KB
/
Copy pathapi-docs.json
File metadata and controls
1 lines (1 loc) · 5.92 KB
1
{"openapi":"3.1.0","info":{"title":"출석앱 API","description":"DDD 출석앱 SWAGGER UI입니다."},"servers":[{"url":"http://localhost:8080","description":"Generated server url"}],"tags":[{"name":"샘플 API","description":"샘플용 API 입니다."},{"name":"인증 API","description":"소셜 로그인 및 인증 관련 API"}],"paths":{"/sample/{id}":{"get":{"tags":["샘플 API"],"summary":"샘플 데이터 단건 조회","description":"샘플 데이터 단건을 조회합니다.","operationId":"getDetail","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64","exclusiveMinimum":0}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/SampleResponse"}}}}},"security":[{"JWT":[]}]},"put":{"tags":["샘플 API"],"summary":"샘플 데이터 수정","description":"샘플 데이터를 수정합니다.","operationId":"modify","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64","exclusiveMinimum":0}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SampleUpdateRequest"}}},"required":true},"responses":{"200":{"description":"OK"}},"security":[{"JWT":[]}]},"delete":{"tags":["샘플 API"],"summary":"샘플 데이터 삭제","description":"샘플 데이터를 삭제합니다.","operationId":"remove","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64","exclusiveMinimum":0}}],"responses":{"200":{"description":"OK"}},"security":[{"JWT":[]}]}},"/sample":{"get":{"tags":["샘플 API"],"summary":"샘플 데이터 검색","description":"샘플 데이터 리스트를 검색합니다.","operationId":"search","parameters":[{"name":"title","in":"query","description":"제목","required":false,"schema":{"type":"string","maxLength":64,"minLength":0},"example":"제목입니다."},{"name":"content","in":"query","description":"내용","required":false,"schema":{"type":"string","maxLength":200,"minLength":0},"example":"내용입니다."},{"name":"size","in":"query","description":"한 페이지 아이템 갯수","required":false,"schema":{"type":"integer","format":"int32","description":"한 페이지 아이템 갯수","example":10},"example":10},{"name":"currentPage","in":"query","description":"조회 페이지","required":false,"schema":{"type":"integer","format":"int32","description":"조회 페이지","example":1,"exclusiveMinimum":0},"example":1}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ListResponseSampleResponse"}}}}},"security":[{"JWT":[]}]},"post":{"tags":["샘플 API"],"summary":"샘플 데이터 저장","description":"샘플 데이터를 저장합니다.","operationId":"register","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SampleSaveRequest"}}},"required":true},"responses":{"200":{"description":"OK"}},"security":[{"JWT":[]}]}},"/auth/refresh":{"post":{"tags":["인증 API"],"summary":"토큰 갱신","description":"Refresh Token을 사용하여 새로운 Access Token과 Refresh Token을 발급받습니다. (Token Rotation)","operationId":"refreshToken","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/TokenRefreshResponse"}}}}}}},"/auth/logout":{"post":{"tags":["인증 API"],"summary":"로그아웃","description":"현재 사용자의 모든 Refresh Token을 무효화하고 로그아웃합니다.","operationId":"logout","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/TokenRefreshResponse"}}}}}}},"/auth/login/google":{"get":{"tags":["인증 API"],"summary":"구글 로그인","description":"구글 OAuth2 로그인을 시작합니다. /oauth2/authorization/google로 리다이렉트됩니다.","operationId":"googleLogin","responses":{"200":{"description":"OK"}}}},"/auth/login/apple":{"get":{"tags":["인증 API"],"summary":"애플 로그인","description":"애플 OAuth2 로그인을 시작합니다. /oauth2/authorization/apple로 리다이렉트됩니다.","operationId":"appleLogin","responses":{"200":{"description":"OK"}}}}},"components":{"schemas":{"SampleUpdateRequest":{"type":"object","properties":{"title":{"type":"string","description":"제목","example":"제목입니다.","maxLength":64,"minLength":0},"content":{"type":"string","description":"내용","example":"내용입니다.","maxLength":200,"minLength":0}},"required":["content","title"],"title":"[샘플] 샘플 수정 요청 DTO"},"SampleSaveRequest":{"type":"object","properties":{"title":{"type":"string","description":"제목","example":"제목입니다.","maxLength":64,"minLength":0},"content":{"type":"string","description":"내용","example":"내용입니다.","maxLength":200,"minLength":0}},"required":["content","title"],"title":"[샘플] 샘플 저장 요청 DTO"},"TokenRefreshResponse":{"type":"object","description":"토큰 갱신 응답","properties":{"success":{"type":"boolean","description":"갱신 성공 여부","example":true},"message":{"type":"string","description":"응답 메시지","example":"Token refreshed successfully"}}},"ListResponseSampleResponse":{"type":"object","properties":{"size":{"type":"integer","format":"int32","description":"한 페이지 아이템 갯수","example":10},"currentPage":{"type":"integer","format":"int32","description":"현재 페이지","example":1},"totalCount":{"type":"integer","format":"int64","description":"총 리스트 갯수","example":100},"data":{"type":"array","description":"리스트 값","items":{"$ref":"#/components/schemas/SampleResponse"}}}},"SampleResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64","description":"샘플 고유 ID","example":1},"title":{"type":"string","description":"제목","example":"제목입니다."},"content":{"type":"string","description":"내용","example":"내용입니다."}},"title":"[샘플] 샘플 단건 조회 응답 DTO"}},"securitySchemes":{"JWT":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}}}