- anipharm_api.py: 동물약 PDF 생성 API 추가 - data/master/*.json: 16종 마스터 데이터 업데이트 - templates: medication_guide_v2, 로고 추가 - docs: AI 매핑 아키텍처, API 스펙 문서 - .gitignore: _dev_scripts/, *.db 제외 추가 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
227 lines
4.8 KiB
Markdown
227 lines
4.8 KiB
Markdown
# 애니팜 투약지도서 API 명세서
|
|
|
|
> **Base URL:** `https://ap.0bin.in`
|
|
> **Local:** `http://localhost:7002`
|
|
> **Version:** 1.0.0
|
|
> **Last Updated:** 2026-03-19
|
|
|
|
---
|
|
|
|
## 📋 엔드포인트 목록
|
|
|
|
| Method | Endpoint | 설명 |
|
|
|--------|----------|------|
|
|
| GET | `/health` | 헬스체크 |
|
|
| GET | `/api/products` | 약품 목록 조회 |
|
|
| POST | `/api/guide/pdf` | PDF 생성 |
|
|
| POST | `/api/guide/preview` | 미리보기 (메타데이터) |
|
|
|
|
---
|
|
|
|
## 1. 헬스체크
|
|
|
|
서버 상태 확인
|
|
|
|
### Request
|
|
```
|
|
GET /health
|
|
```
|
|
|
|
### Response
|
|
```json
|
|
{
|
|
"status": "ok",
|
|
"service": "anipharm-api",
|
|
"timestamp": "2026-03-19T20:01:13.292109"
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## 2. 약품 목록 조회
|
|
|
|
등록된 모든 약품 목록 반환
|
|
|
|
### Request
|
|
```
|
|
GET /api/products
|
|
```
|
|
|
|
### Response
|
|
```json
|
|
{
|
|
"success": true,
|
|
"count": 21,
|
|
"products": [
|
|
{
|
|
"product_id": "MASTER-001",
|
|
"name": "넥스가드 스펙트라",
|
|
"category": "antiparasitic",
|
|
"category_display": "올인원 구충제"
|
|
},
|
|
{
|
|
"product_id": "MASTER-002",
|
|
"name": "아시카프 츄어블정",
|
|
"category": "nsaid",
|
|
"category_display": "진통소염제 (NSAIDs)"
|
|
}
|
|
// ... 21개
|
|
]
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## 3. PDF 생성
|
|
|
|
투약지도서 PDF 파일 생성 및 다운로드
|
|
|
|
### Request
|
|
```
|
|
POST /api/guide/pdf
|
|
Content-Type: application/json
|
|
```
|
|
|
|
### Request Body
|
|
```json
|
|
{
|
|
"product_ids": ["MASTER-001", "MASTER-002", "MASTER-005"],
|
|
"patient_name": "김남곤",
|
|
"pet_name": "뽀삐",
|
|
"pet_species": "푸들",
|
|
"pet_age": "3세",
|
|
"pharmacy_name": "청춘약국 동물약 전문상담",
|
|
"pharmacy_tel": "033-481-0384"
|
|
}
|
|
```
|
|
|
|
| 필드 | 타입 | 필수 | 설명 |
|
|
|------|------|------|------|
|
|
| product_ids | string[] | ✅ | 약품 ID 배열 |
|
|
| patient_name | string | ❌ | 보호자 이름 (기본: "보호자") |
|
|
| pet_name | string | ❌ | 반려동물 이름 (기본: "반려동물") |
|
|
| pet_species | string | ❌ | 품종 |
|
|
| pet_age | string | ❌ | 나이 |
|
|
| pharmacy_name | string | ❌ | 약국명 (기본: "청춘약국 동물약 전문상담") |
|
|
| pharmacy_tel | string | ❌ | 전화번호 (기본: "033-481-0384") |
|
|
|
|
### Response
|
|
- **Success:** `application/pdf` (PDF 파일 다운로드)
|
|
- **Error:**
|
|
```json
|
|
{
|
|
"success": false,
|
|
"error": "에러 메시지"
|
|
}
|
|
```
|
|
|
|
### cURL 예시
|
|
```bash
|
|
curl -X POST https://ap.0bin.in/api/guide/pdf \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"product_ids": ["MASTER-001", "MASTER-002"],
|
|
"patient_name": "김남곤",
|
|
"pet_name": "뽀삐",
|
|
"pet_species": "푸들",
|
|
"pet_age": "3세"
|
|
}' \
|
|
--output 투약지도서.pdf
|
|
```
|
|
|
|
---
|
|
|
|
## 4. 미리보기 (메타데이터)
|
|
|
|
PDF 생성 전 약품 정보 및 예상 페이지 수 확인
|
|
|
|
### Request
|
|
```
|
|
POST /api/guide/preview
|
|
Content-Type: application/json
|
|
```
|
|
|
|
### Request Body
|
|
```json
|
|
{
|
|
"product_ids": ["MASTER-001", "MASTER-002", "MASTER-005"]
|
|
}
|
|
```
|
|
|
|
### Response
|
|
```json
|
|
{
|
|
"success": true,
|
|
"drug_count": 3,
|
|
"page_count": 1,
|
|
"drugs": [
|
|
{
|
|
"id": "MASTER-001",
|
|
"name": "넥스가드 스펙트라",
|
|
"category": "antiparasitic",
|
|
"has_image": true
|
|
},
|
|
{
|
|
"id": "MASTER-002",
|
|
"name": "아시카프 츄어블정",
|
|
"category": "nsaid",
|
|
"has_image": true
|
|
},
|
|
{
|
|
"id": "MASTER-005",
|
|
"name": "하트세이버 츄어블",
|
|
"category": "antiparasitic",
|
|
"has_image": true
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## 📦 등록된 약품 목록 (21개)
|
|
|
|
| ID | 이름 | 카테고리 |
|
|
|----|------|----------|
|
|
| MASTER-001 | 넥스가드 스펙트라 | antiparasitic |
|
|
| MASTER-002 | 아시카프 츄어블정 | nsaid |
|
|
| MASTER-003 | 아시엔로 50 | antibiotic |
|
|
| MASTER-004 | 세레니아 정 | antiemetic |
|
|
| MASTER-005 | 하트세이버 츄어블 | antiparasitic |
|
|
| MASTER-006 | 프로닐스팟 | antiparasitic |
|
|
| MASTER-007 | 오리더밀 | otic |
|
|
| MASTER-008 | 터비덤 스프레이 | antifungal |
|
|
| MASTER-009 | 클로르헥시딘 샴푸 | topical |
|
|
| MASTER-010 | 셀라이트 | antiparasitic |
|
|
| MASTER-011 | 멜록시캐시 CH | nsaid |
|
|
| MASTER-012 | 복합 개시딘 겔 | topical |
|
|
| MASTER-013 | 임팩트액 | antiparasitic |
|
|
| MASTER-014 | 안텔민 뽀삐/킹 | antiparasitic |
|
|
| MASTER-015 | 티어가드 정 | antibiotic |
|
|
| MASTER-016 | 액티벳정 | antibiotic |
|
|
| MASTER-017 | 아포퀠 | immunomodulator |
|
|
| MASTER-018 | 브라벡토 | antiparasitic |
|
|
| MASTER-019 | 심파리카 트리오 | antiparasitic |
|
|
| MASTER-020 | 가바펜틴 | analgesic |
|
|
| MASTER-021 | 메트로니다졸 | antibiotic |
|
|
|
|
---
|
|
|
|
## 🔧 서버 정보
|
|
|
|
| 항목 | 값 |
|
|
|------|-----|
|
|
| 프레임워크 | Flask |
|
|
| 포트 | 7002 |
|
|
| PM2 이름 | anipharm-api |
|
|
| PDF 엔진 | WeasyPrint |
|
|
| 페이지당 약품 | 4개 |
|
|
|
|
---
|
|
|
|
## 📝 변경 이력
|
|
|
|
| 날짜 | 버전 | 내용 |
|
|
|------|------|------|
|
|
| 2026-03-19 | 1.0.0 | 최초 배포 |
|