API GUIDE

대사성질환 AI 식단 생성 API

사용자 건강정보를 보내면 진료지침 기준을 적용한 식단을 요청한 일수만큼 생성해 반환합니다.

1. 기본 정보

Base URLhttps://food.onebiohealth.co.kr
프로토콜HTTPS / REST · 요청·응답 application/json (UTF-8)
인증공개 식단 생성 API는 인증 없이 호출
인증 추천 식단 목록 API는 Authorization: Bearer <토큰> 필요 (토큰은 로그인 후 서비스 화면 상단 「API 연동용 액세스 토큰」에서 확인)
운영온프레미스 서버에서 처리 — 개인·건강정보 외부 전송 없음

2. API 목록

메서드경로설명인증
POST/api/meal-plan식단 생성 — 질환별 맞춤 식단을 요청 일수만큼 생성공개
GET/api/meal-plan/meta지원 질환·알레르기·활동량·진료지침 출처공개
POST/api/meal-plans추천 식단 저장필요
GET/api/meal-plans추천 식단 목록필요
GET/api/meal-plans/{id}추천 식단 상세(전체 식단·검증·근거)필요
DELETE/api/meal-plans/{id}추천 식단 삭제필요
GET/api/health서비스 상태 점검공개
GET/api/foods음식 검색(식약처 식품영양성분DB)공개
POST/api/analyze(부가) 식사 사진 반찬 인식·영양 산출공개

※ 계정·기록 API(/api/signup · /api/login · /api/me · /api/profile · /api/meals)는 실행형 문서에서 확인할 수 있습니다. /api/meals실제 섭취 기록으로, 추천 식단 목록(/api/meal-plans)과는 별개 자원입니다.

3. 식단 생성 — 요청

필드타입설명
sexstring성별 M / F (기본 M)
ageint연령(세), 기본 55
height / weightnumber키(cm) / 몸무게(kg), 기본 168 / 70
actstring활동량 low / mid / high
dzstring[]대사성질환 — 고혈압 · 당뇨병 · 이상지질혈증 (복수 선택)
algstring[]알레르기 — 우유·계란·대두·밀·갑각류·생선·견과·돼지고기
dislikestring기피식품(쉼표 구분)
sbp / ldlint수축기혈압 / LDL — 검진수치로 상한 자동 강화
daysint생성 일수 1~365 (기본 30) — 10을 보내면 10일치, 30이면 30일치 반환
seedint재생성 카운터 — 같은 값이면 같은 식단이 재현됨

4. 식단 생성 — 응답

항목내용
targets목표열량 · 나트륨 상한 · 포화지방 상한 · 식이섬유 하한 · 콜레스테롤 상한 · 당류 상한 · BMI · 적용 질환
days[ ]일자별 식단 — 끼니(아침·점심·저녁·간식)별 음식명·중량(g)·영양성분, 일 합계, 적합도 점수
summaryrequestedDays(요청 일수) · days(반환 일수) · 평균 적합도 · 일평균 영양
verification[ ]영양소별 기준 충족 일수 · 충족률 (과업③ 검증 근거)
citations[ ]생성 근거 — 질환별 진료지침 인용
excluded알레르기·금기·기피로 배제된 식품 건수 및 목록

5. 호출 예시

① 식단 생성 (인증 불필요)
curl -X POST "https://food.onebiohealth.co.kr/api/meal-plan"   -H "Content-Type: application/json"   -d '{"sex":"M","age":55,"height":168,"weight":70,"act":"low",
       "dz":["고혈압"],"sbp":150,"days":30}'

→ 목표열량 2,150kcal · 나트륨 상한 2,000mg이 산출되고 30일 식단이 반환됩니다.

② 추천 식단 목록 (토큰 필요)
curl -X GET "https://food.onebiohealth.co.kr/api/meal-plans"   -H "Authorization: Bearer <액세스 토큰>"
③ 추천 식단 저장
curl -X POST "https://food.onebiohealth.co.kr/api/meal-plans"   -H "Authorization: Bearer <액세스 토큰>"   -H "Content-Type: application/json"   -d '{"title":"고혈압 30일 식단","plan": <식단 생성 응답 전체>}'

6. 오류 코드

코드의미
200정상 처리
400요청 형식 오류(예: 저장할 식단 없음)
401인증 필요 또는 토큰 만료
404대상 없음 — 다른 사용자의 식단은 조회되지 않음
422입력값 검증 실패(예: days 범위 초과)
500서버 내부 오류(사유 포함)

※ 지원하지 않는 질환코드나 문자열 형태의 수치가 전달되어도 서버가 정규화하여 처리하므로 오류 없이 식단이 반환됩니다.