11조 미프 5차, 도서 구독, 소장 서비스 API 명세서
네, Gitpod 환경에서 axios
를 사용하는 방식 (baseURL
에 게이트웨이 주소를 설정하고, 개별 API 호출 시에는 상대 경로를 사용하는 방식)을 고려하여 API 맵에서 http://localhost:8088
부분을 제거하고 상대 경로로만 표시해 드릴게요.
이렇게 하면 프론트엔드 코드에서 apiClient
를 통해 호출할 때 baseURL
과 합쳐져서 완전한 URL이 됩니다.
authormanage
바운더리 컨텍스트 API 맵구분 | API 설명 | HTTP 메서드 | 경로 | 요청 본문 (예시) | 응답 본문 (예시) (성공 시) | 비고 |
---|---|---|---|---|---|---|
작가 | 가입 | POST |
/authors |
{"name": "새작가", "loginId": "new_author", "password": "pass", "portfolioUrl": "<http://new.com>"} |
{"authorId": 1, "name": "새작가", "loginId": "new_author", "isApproved": false, ...} |
기본 POST |
회원정보 수정 | PATCH |
/authors/{authorId} |
{"name": "수정작가", "portfolioUrl": "<http://updated.com>"} |
{"authorId": 1, "name": "수정작가", ...} |
기본 PATCH |
|
회원정보 삭제 | DELETE |
/authors/{authorId} |
없음 | {"message": "작가가 삭제되었습니다."} |
기본 DELETE |
|
작가 정보 조회 | GET |
/authors/{authorId} |
없음 | {"authorId": 1, "name": "김작가", "isApproved": true, ...} |
(API 목록에 없었지만, 확인을 위해 추가) | |
전체 작가목록 조회 | GET |
/authors |
없음 | |||
관리자 | 등록 승인 | PUT |
/authors/{authorId}/approve |
없음 | {"authorId": 1, "name": "새작가", "isApproved": true, ...} |
isApproved 상태를 true 로 변경 |
등록 거절 | PUT |
/authors/{authorId}/disapprove |
없음 | {"authorId": 1, "name": "새작가", "isApproved": false, ...} |
isApproved 상태를 false 로 변경 |
writemanage
바운더리 컨텍스트 API 맵 (Aggregates: Writing, ReadModel: ApprovalAuthor)writemanage
바운더리 컨텍스트는 글(Writing) 작성 및 관리, 그리고 책 등록 기능을 담당합니다. 또한, 작가 승인 정보(ApprovalAuthor) 조회를 위한 ReadModel도 포함합니다. API 게이트웨이(axios.create
의 baseURL
)가 이미 설정되어 있으므로, 각 API는 상대 경로로 표시됩니다.
구분 | API 설명 | HTTP 메서드 | 경로 | 요청 본문 (예시) | 응답 본문 (예시) (성공 시) | 비고 |
---|---|---|---|---|---|---|
글 | 글 작성 | POST |
/writings | {"authorId": 1, "title": "새로운 글", ...} |
{"bookId": 1, "title": "새로운 글", ...} |
기본 POST |
글 수정 | PUT |
/writings/{bookId} | {"title": "수정된 제목", "context": "..."} |
{"bookId": 1, "title": "수정된 제목", ...} |
확장 PUT (전체 업데이트) |
|
글 삭제 | DELETE |
/writings/{bookId} | 없음 | {"message": "글이 삭제되었습니다."} |
기본 DELETE |
|
책 등록 (출간) | PUT |
/writings/{bookId}/registbook | 없음 | {"bookId": 1, "registration": true, ...} |
registration 상태를 true 로 변경 |
|
내 글 목록 조회 | GET |
/writings/my | 없음 | [{"bookId": 1, ...}, {"bookId": 3, ...}] |
||
글 정보 조회 | GET |
/writings/{bookId} | 없음 | {"bookId": 1, "title": "책 제목", ...} |
||
승인 작가 | 승인된 작가 정보 조회 | GET |
/approvalauthors/{authorId} | 없음 | {"authorId": 1, "isApproved": true, ...} |
특정 작가의 승인 상태 및 이름 조회 |
승인된 작가 목록 조회 | GET |
/approvalauthors | 없음 | [{"authorId": 1, ...}, {"authorId": 2, ...}] |
모든 승인된 작가 목록 조회 |
네, 확인했습니다. ai
바운더리 컨텍스트의 API 명세에서 '문서 요약(ContentAnalyzer)' 기능이 빠져있네요.
말씀하신 대로 ContentAnalyzer
애그리거트 속성을 참고하여 아래 표에 내용을 추가하고 완성했습니다.