개요 · 시작하기

/api/v1 .md 원문

번개라디오 개발자 가이드

로컬에서 개발하는 번개라디오 앱을 위한 백엔드 API 명세입니다. (AI 코더 참고용)

Base URL

https://tune.tideflo.work/api/v1

모든 응답은 application/json; charset=utf-8 입니다. CORS는 허용되어 있습니다.

표준 응답 형식

성공:

{
  "success": true,
  "data": { ... },
  "meta": { "page": 1, "per_page": 30, "total": 37, "total_pages": 2 }
}
  • data — 실제 페이로드 (객체 또는 배열)
  • meta — 목록 응답에만 포함(페이지네이션)

실패:

{
  "success": false,
  "error": { "code": "not_found", "message": "채널을 찾을 수 없습니다" }
}

HTTP 상태코드도 함께 사용합니다(200/201/400/401/404/409/422/502 등). 자세한 내용은 에러 코드 참고.

인증 개요

  • 익명 청취: 방송국 목록·상세·스트림 재생은 인증 없이 호출 가능합니다. (기존 번개라디오 UX 유지)
  • 선택적 계정: 즐겨찾기 동기화 등은 이메일+비밀번호 계정으로 발급받은 Bearer 토큰 사용.
  • 기기 식별: 계정 없이도 X-Device-UUID 헤더로 기기 단위 즐겨찾기가 가능합니다.
  • 2차 계획: 구글/카카오/네이버 소셜 로그인.

자세한 내용은 계정·즐겨찾기 참고.

빠른 시작

# 헬스체크
curl https://tune.tideflo.work/api/v1/health

# 추천 방송국 목록
curl "https://tune.tideflo.work/api/v1/stations?featured=1"

# 특정 채널 재생 URL 발급 (KBS 쿨FM 예)
curl https://tune.tideflo.work/api/v1/stations/kbs-coolfm
curl https://tune.tideflo.work/api/v1/stations/5/stream

엔드포인트 요약

메서드 경로 설명
GET /health 서비스·DB 상태
GET /categories 카테고리(장르) 목록
GET /stations 방송국 목록(필터·검색·페이지)
GET /stations/{id|slug} 방송국 상세(+스트림)
GET /stations/{id}/stream 재생 URL 발급
POST /auth/register 회원가입
POST /auth/login 로그인
GET /auth/me 내 정보
POST /auth/logout 로그아웃
GET /favorites 즐겨찾기 목록
POST /favorites 즐겨찾기 추가
DELETE /favorites/{stationId} 즐겨찾기 삭제