Skip to content

설문 조사 api 기능 구현 및 swagger 작성 #132

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 48 commits into
base: main
Choose a base branch
from

Conversation

hj4645
Copy link
Contributor

@hj4645 hj4645 commented Apr 5, 2025

Goal

  • 설문조사 서비스의 주요 기능 구현
    • 요구사항: 설문 생성, 수정, 응답 제출, 응답 조회
    • 추가구현: 제목으로 설문 목록 검색
  • Swagger 문서 작성

Changes

설문조사 관련 기능

  • 설문 생성 API:

    • 설문 이름, 설명, 질문 항목을 포함하여 설문 생성 기능 구현.
    • 질문 유형별 데이터 구조(SHORT_ANSWER, LONG_ANSWER, SINGLE_CHOICE, MULTIPLE_CHOICE)를 지원.
    • Swagger 문서에 요청 예제 및 설명 추가.
  • 설문 수정 API:

    • 기존 설문의 질문 추가/변경/삭제를 지원하며, 기존 응답 유지 기능 구현.
    • 질문 ID와 옵션 ID를 기반으로 수정과 새로 추가되는 항목 구분.
    • Swagger 문서에 요청 예제 및 설명 추가.
  • 설문 목록 조회 API:

    • 설문 제목 키워드를 기반으로 검색 가능.
    • 검색 결과에 각 설문의 질문 개수를 포함하여 반환.
    • Swagger 문서에 응답 예제 및 설명 추가.

응답 관련 기능

  • 응답 제출 API:

    • 질문 유형별로 응답 데이터의 유효성을 검증하며 응답 제출 기능 구현.
    • 선택형 질문에서 옵션 개수 제한 및 텍스트 입력 방지.
    • Swagger 문서에 요청 예제 및 설명 추가.
  • 응답 조회 API:

    • 특정 설문의 모든 응답 데이터를 계층 구조로 조회하는 기능 구현.
    • Swagger 문서에 응답 예제 및 설명 추가.
  • 응답 검색 API:

    • 질문 이름과 응답 값을 기준으로 필터링할 수 있는 검색 기능 구현.
    • 텍스트 기반 응답과 선택형 응답 모두 검색 지원.
    • Swagger 문서에 요청 예제 및 설명 추가.

Description

주요 변경 사항

  1. Swagger 문서화:

    • 모든 API에 대해 요청/응답 예제 및 설명 추가.
    • 질문 유형별 데이터 구조와 요청 형식(SHORT_ANSWER, LONG_ANSWER, SINGLE_CHOICE, MULTIPLE_CHOICE)을 정의
  2. CustomException 활용:

    • 사용자 친화적인 오류 메시지를 제공하기 위해 커스텀 예외 클래스 적용.
    • 설문이 존재하지 않거나 잘못된 요청 형식에 대해 명확한 오류 메시지 반환.
  3. 검색 기능:

    • 설문 제목 키워드 검색 기능 구현.
    • 대소문자 무시 검색으로 사용자 편의성 개선.
  4. Swagger Examples 클래스 활용:

    • 긴 JSON 데이터를 재사용 가능한 SwaggerExamples 클래스에 정의하여 관리.
    • 각 API에서 JSON 예제를 참조하도록 설정하여 코드 중복 제거.

hj4645 and others added 30 commits March 22, 2025 19:10
- 기존 프로젝트 구조 삭제
- 프로젝트 구조 변경 : 모놀리식 -> 멀티 모듈
- version catalog 생성
- 각 모듈 gradle 설정
- logback.xml, logging.yml 작성
- 변경 가능성 있음
- 멀티모듈 빌드 시 클래스패스 스냅샷 변환 과정에서 메모리가 부족할 때 발생하는 오류
@hj4645 hj4645 changed the title Hjpark onboarding 설문 조사 api 기능 구현 및 swagger 작성 Apr 5, 2025
@hj4645 hj4645 self-assigned this Apr 5, 2025
@hj4645 hj4645 requested a review from heli-os April 5, 2025 10:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants