docs: OpenAPI 기반 공유용 Swagger HTML 자동 배포#52
Conversation
There was a problem hiding this comment.
GitHub Pages 조립 방식과 공개 문서 보안 범위를 확인했습니다.
기존 DB 문서는 site/ 루트에 유지하고 API 문서를 site/api/에 내려받은 뒤 하나의 Pages Artifact로 배포하므로 두 문서가 서로 덮어쓰지 않습니다.
프로젝트 Pages 경로와 상대 링크 구성도 맞아 병합 후 주소는 https://fowoco.github.io/server/api/ 가 맞습니다.
PR에서는 미리보기 Artifact만 생성하고 실제 Pages 배포는 main push에서만 실행됩니다. OpenAPI도 운영·Staging이 아닌 test profile/H2에서 추출하며, 배포 명세에서 임시 서버 주소를 제거하고 Try it out과 인증 입력을 비활성화했습니다. CSP에서 외부 API 연결도 허용하지 않고 운영 profile의 Springdoc 비활성화 정책도 유지됩니다.
공개 결과에는 API 경로·Schema·비민감 예시와 빌드 정보만 포함되며 실제 개인정보, 토큰, 계정 또는 DB credential이 포함되지 않는 것을 확인했습니다.
|
@chaeliki Worker 요청 DTO의 Swagger 필드명 수정 내용을 간단히 공유합니ㅏㄷ ! 실제 HTTP JSON은 기존부터 Jackson 설정과 이번 PR에서는 아래 요청 DTO 필드에
예: 런타임 요청 처리나 DB Schema는 변경하지 않았습니다. |
Closes #51
왜 필요한가요?
로컬
/swagger-ui.html은 서버를 실행한 개발자만 볼 수 있습니다.Client·AI·기획 담당자가 현재
main의 실제 API 계약을 같은 링크로 확인할 수있도록 공유용 문서가 필요합니다.
무엇이 바뀌나요?
testprofile로 실행해 실제/v3/api-docs를 추출합니다./api/에 함께 배포하여 Pages 배포가 서로덮어쓰지 않게 했습니다.
api-docs-siteArtifact로 병합 전 결과를 확인할 수 있습니다.display_name과displayName을 중복 노출하던 OpenAPISchema를 실제
snake_case계약으로 교정하고 회귀 테스트를 추가했습니다.docs/api-documentation.md에 초보자용 확인·재생성 방법을정리했습니다.
보안 기준
Try it out과 인증 입력을 비활성화했습니다.리뷰할 부분
chaeliki: Worker 요청 DTO의 canonicalsnake_caseSchema가 Client 계약과맞는지 확인해 주세요.
krestar: GitHub Pages 조립 방식과 공개 문서 보안 범위를 확인해 주세요.https://fowoco.github.io/server/api/검증
./gradlew clean testnode --test scripts/api-docs/generate-site.test.mjs scripts/db-docs/generate-site.test.mjs./scripts/api-docs/generate.shconsole error 없음
git diff --check검증