Resource API 구축 (/api/v1)

ID: 96096c8d-e730-43d0-b145-eabf84a67108

높음 완료

## 개요
doorkeeper Bearer 토큰 인증 기반의 Resource API를 구축하여 외부 서비스에서 진단 결과, 강점 프로필 등을 조회할 수 있도록 한다.

## 작업 내용
- api/v1 namespace 신규 생성
- doorkeeper Bearer 토큰 인증 기반 API base controller
- Scope 기반 권한 설계 (profile, diagnoses, strengths)
- API endpoints:
- GET /api/v1/me — 현재 사용자 프로필
- GET /api/v1/users/:uid/diagnoses — 진단 이력
- GET /api/v1/users/:uid/strength_profile — 강점 프로필
- Client Credentials Grant 지원 (서버 간 통신용)
- API 응답 JSON 직렬화

## 완료 기준
- [ ] Bearer 토큰으로 API 호출 성공
- [ ] 유효하지 않은 토큰 시 401 응답
- [ ] Scope에 따른 접근 제어 동작
- [ ] Client Credentials Grant로 서버 간 API 호출 성공
- [ ] API integration test 통과

첨부 이미지

이미지 추가 (Ctrl+V로 붙여넣기 또는 클릭)

JPEG, PNG, GIF, WebP / 최대 10MB

담당자: 팀리드
생성일: 2026년 02월 28일 23:43

활동 로그

  • 팀리드 팀 작업 완료 - Resource API 구축

    2026년 03월 01일 03:50:37

    상세 보기

    ## 수정된 기능
    - **API Base Controller**: ActionController::API 기반, doorkeeper 토큰 인증, JSON 에러 핸들링
    - **GET /api/v1/me**: 현재 사용자 프로필 (profile scope)
    - **GET /api/v1/users/:id/diagnoses**: 진단 이력 조회 (diagnoses scope)
    - **GET /api/v1/users/:id/strength_profile**: 강점 프로필 (strengths scope, top_dna/way/domain/scores)
    - **CORS**: rack-cors gem, /api/* 경로만 허용
    - **권한 제어**: Auth Code는 자기 자신만, Client Credentials는 모든 사용자 조회 가능

    ## 테스트 결과
    - API controller 테스트: 28개 통과
    - API 통합 테스트: 14개 통과
    - 기존 doorkeeper 테스트: 20개 통과
    - 기존 인증 테스트: 11개 통과

    ## 생성된 파일
    - `app/controllers/api/v1/base_controller.rb`
    - `app/controllers/api/v1/profiles_controller.rb`
    - `app/controllers/api/v1/users/diagnoses_controller.rb`
    - `app/controllers/api/v1/users/strength_profiles_controller.rb`
    - `config/initializers/cors.rb`
    - `test/controllers/api/v1/` (테스트 파일들)
    - `test/integration/api_v1_test.rb`

    ## 수정된 파일
    - `Gemfile` — rack-cors 추가
    - `config/routes.rb` — API namespace 추가

  • 팀리드 상태 변경: 진행 중 → 완료

    2026년 03월 01일 03:50:24

  • 팀리드 위임: test-dev에게 'Resource API 통합 테스트' 작업 배정

    2026년 03월 01일 03:39:29

  • 팀리드 위임: api-dev에게 'diagnoses + strength_profile API endpoints' 작업 배정

    2026년 03월 01일 03:39:21

  • 팀리드 위임: backend-dev에게 'API Base Controller + routes + /me endpoint' 작업 배정

    2026년 03월 01일 03:39:10

  • 팀리드 작업 시작 - Resource API 구축

    2026년 03월 01일 03:39:00

    상세 보기

    ## 작업 계획
    - 목표: doorkeeper Bearer 토큰 기반 Resource API 구축
    - 접근 방식: 3개 서브 티켓으로 분해
    1. API Base Controller + routes + /me endpoint (backend-dev)
    2. diagnoses + strength_profile endpoints (api-dev) — 1번 의존
    3. API 통합 테스트 (test-dev) — 1, 2번 의존

    ## 현재 상태
    - doorkeeper 도입 완료 (티켓 1 done)
    - 현재 API 구조 없음 — 전체 신규 생성

  • 팀리드 티켓 클레임 완료

    2026년 03월 01일 03:38:50

  • 팀리드 기능 계획 수립 - Resource API

    2026년 02월 28일 23:43:35

    상세 보기

    ## 배경
    - 현재 API 구조 없음 (app/controllers/api/ 부재)
    - 전체 신규 설계 필요
    - doorkeeper 티켓 완료 후 착수

    ## 의존성
    - 티켓 1 (doorkeeper 도입) 완료 후 진행