swagger:

index.html

User

API 기능 메서드 URL 요청 헤더 요청 바디 응답 예시 응답 실패 예시 비고
회원가입 POST /api/user/signup Content-Type: application/json json {"nickname": "string", "password": "string", "email": "string", "birthDate": "YYYY-MM-DD"} - 성공 (201 OK): - 응답 본문: json {"message": "회원가입 성공"} 400 Bad Request: json {"error": "필수 필드 누락"} 409 Conflict: json {"error": "닉네임 또는 이메일 중복"} profile_color는 서버에서 10개의 색상 중 랜덤으로 지정되어 . 색상 코드 참조 백엔드 db에 저장.

수정사항

Stock API 명세서

API 기능 메서드 URL 요청 헤더 요청 파라미터 요청 바디 응답 예시 응답 실패 예시 비고
주식 정보 조회 GET /api/stock/{stock_id} 없음 없음 없음 json {"market_cap": "int", "ticker": "string", "market_type": "string", "company_name": "string", "category": "string", "company_overview": "string"} 404 Not Found: json {"error": "유효하지 않은 stock_id"} 특정 주식 정보를 조회합니다.
종목 검색 자동완성 GET /api/stock/search 없음 keyword 없음 json [{"id": "int", "ticker": "string", "company_name": "string"}] 400 Bad Request: json {"error": "검색어를 입력해주세요"} keyword 쿼리 파라미터를 통해 ticker 또는 회사명으로 검색어를 입력 받아 자동완성 기능 제공.
종목 정렬 조회 GET /api/stock/sort 없음 sort_by, page 없음 json [{"id": "int", "ticker": "string", "company_name": "string", "market_cap": "int", "volume": "int", "change_rate": "float"}] 400 Bad Request: json {"error": "유효하지 않은 정렬 기준입니다"} 정렬 기준과 페이지를 요청 파라미터로 받아 최대 10페이지, 페이지당 10개씩 표시. sort_by : market_cap, volume,change_rate_up, change_rate_down page :1~10

종목 정렬 조회는 stockprice 도메인에서 |

수정 사항


Announcement API 명세서

API 기능 메서드 URL 요청 헤더 요청 파라미터 요청 바디 응답 예시 응답 실패 예시 비고
특정 공시 요약 조회 GET /api/announcement/{announcement_id} 없음 없음 없음 `json {
"message": "특정 공시 정보 조회 성공",
"data": {
"stockId": 9,
"title": "일괄신고추가서류)",
"content": "### 공시 내용 요약",
"announcementDate": "2024-11-20",
"submitter": "NH투자증권",
"announcementType": "기타공시",
"originalAnnouncementUrl": "https://dart.fss.or.kr/dsaf001/main.do?rcpNo=20241120000094",
"totalVoteCount": 0,
"positiveVoteCount": 0,
"negativeVoteCount": 0,
"commentCount": 7
}
}` 404 Not Found: json {"error": "유효하지 않은 announcement_id"} 특정 공시 정보를 조회합니다.
전체 공시 목록 조회 GET /api/announcement 없음 sort_by{최신순: "latest", 댓글 많은 순: "comment", 투표수: "vote"}, page 없음 `json {
"message": "전체 공시 목록 조회 성공",
"data": {
"announcementCount": 3,
"announcementList": [
{
"announcementId": 1,
"title": "일괄신고추가서류(파생결합사채-주가연계파생결합사채)",
"stockName": "NH투자증권",
"announcementDate": "2024-11-20",
"submitter": "NH투자증권",
"totalVoteCount": 0,
"positiveVoteCount": 0,
"negativeVoteCount": 0,
"commentCount": 7
}, ...
]
}
}` 400 Bad Request: json {"error": "유효하지 않은 정렬 기준입니다"} 전체 공시 목록을 정렬 및 페이징하여 조회합니다. 최신순, 댓글 많은 순, 투표 수 순으로 정렬합니다.
특정 주식 공시 목록 조회 GET /api/announcement/stock/{stock_id} 없음 sort_by{최신순: "latest", 댓글 많은 순: "comment", 투표수: "vote"}, page 없음 `json {
"message": "특정 주식 공시 목록 조회 성공",
"data": {
    "announcementCount": 1,
    "announcementList": [
        {
            "announcementId": 1,
            "title": "일괄신고추가서류(파생결합사채-주가연계파생결합사채)",
            "stockName": "NH투자증권",
            "announcementDate": "2024-11-20",
            "submitter": "NH투자증권",
            "totalVoteCount": 0,
            "positiveVoteCount": 0,
            "negativeVoteCount": 0,
            "commentCount": 7
        }
    ]
}

}| **404 Not Found**:json {"error": "유효하지 않은 stock_id"}| 특정 주식에 대한 공시 목록을 페이징하여 조회합니다. | | 검색어 공시 목록 조회 | GET |/api/announcement/search| 없음 |keyword(default:"", page(deafault:0), size(deafault:10), "period"(default:"") : { 1m, 6m, 1y, 3y, yyyy-mm-dd~yyyy-mm-dd}, marketType(default:"") : { "KOSPI", "KOSDAQ"}, type(default:"") : {정기공시, 주요사항보고, 외부감사관련, 발행공시, 지분공시, 자산유동화, 거래소공시, 타공시, 공정위공시}| 없음 |json { "message": "검색어 주식 공시 목록 조회 성공", "data": { "announcementCount": 1, "announcementList": [ { "announcementId": 1, "title": "일괄신고추가서류(파생결합사채-주가연계파생결합사채)", "stockName": "NH투자증권", "announcementDate": "2024-11-20", "submitter": "NH투자증권", "totalVoteCount": 0, "positiveVoteCount": 0, "negativeVoteCount": 0, "commentCount": 7 } ] } }` | | keyword 검색어에 대해 LIKE 문을 사용하여 announcement들 중 keword가 stockName에 포함되는 모든 공시를 페이지네이션 조회하는데 기본 size는 10이며, 이때 최신순, 투표수 순, 댓글 많은 순으로 정렬할 수 있으며, 또한 period로 최근 1달, 최근 6달, 최근 1년, 최근 3년 혹은 특정 날짜를 yyyy-mm-dd ~ yyyy-mm-dd 로 설정하여 검색할 수 있으며 공시에 연관된 stock의 마켓 타입도 설정할 수 있으며 기본값은 전부이다. 그리고 공시의 type으로도 검색 조건을 설정할 수 있다. |

수정 사항


Comment API 명세서

API 기능 메서드 URL 요청 헤더 요청 파라미터 요청 바디 응답 예시 응답 실패 예시 비고
댓글 작성 POST /api/comments/{announcement_id} Content-Type: application/json Authorization: Bearer <JWT 토큰> 없음 json {"content": "string"} - 성공 (201 OK): json {"message": "댓글 작성 성공"} 400 Bad Request: json {"error": "필수 필드 누락"} 특정 공시에 댓글을 작성합니다.
댓글 수정 PATCH /api/comments/{comment_id} Content-Type: application/json Authorization: Bearer <JWT 토큰> 없음 json {"content": "string"} - 성공 (200 OK): json {"message": "댓글 수정 성공"} 404 Not Found: json {"error": "유효하지 않은 comment_id"} 본인이 작성한 댓글을 수정할 수 있습니다.
댓글 삭제 DELETE /api/comments/{comment_id} Authorization: Bearer <JWT 토큰> 없음 없음 - 성공 (200 OK): json {"message": "댓글 삭제 성공"} 404 Not Found: json {"error": "유효하지 않은 comment_id"} 본인이 작성한 댓글을 삭제할 수 있습니다.
특정 공시 댓글 목록 조회 GET /api/comments/announcement/{announcement_id} 없음 page: 페이지 번호 (기본값: 0) size: 페이지당 댓글 수 (기본값: 3?) 없음 json { "message" : "특정 공시 댓글 목록 조회 성공", "data" : [{"comment_id": "int", "content": "string", "created_at": "datetime", "username" : "string", "userProfileColor": "string"}]} 404 Not Found: json {"error": "유효하지 않은 announcement_id"} 특정 공시에 달린 댓글 목록을 조회합니다. page 파라미터를 통해 페이징합니다.
종목 전체 공시 최신 댓글 조회 GET /api/comments/stock/{stock_id} 없음 page: 페이지 번호 (기본값: 0) size: 페이지당 댓글 수 (기본값: 10) 없음 json { "message" : "특정 종목 전체 공시 최신 댓글 목록 조회 성공", "data" : [{"comment_id": "int", "content": "string", "created_at": "datetime", "username" : "string", "userProfileColor": "string", "announcement_id" : "int", "announcementTitle" : "string"}]} 404 Not Found: json {"error": "유효하지 않은 stock_id"} 특정 종목의 모든 공시 중 최신 댓글 최대 10개를 조회합니다.
내가 쓴 댓글 목록 조회 GET /api/comments/my Authorization: Bearer <JWT 토큰> page: 페이지 번호 (기본값: 0) size: 페이지당 댓글 수 (기본값: 3?) 없음 json { "message" : "내 댓글 목록 조회 성공", "data" : [{"comment_id": "int", "content": "string", "created_at": "datetime", "announcement_id": "int", "stock_id": "int", "stockName": "string", "announcementTitle": "string"}]} 401 Unauthorized: json {"error": "인증이 필요합니다"} 로그인한 사용자가 작성한 댓글 목록을 조회합니다.