기본 URL 형태 체크리스트: /v1, trailing slashes, 그리고 이중 경로
요약
API 게이트웨이 사용 시 발생하는 404 오류의 주요 원인인 경로 결합(path join) 버그를 다룹니다. Base URL 설정 시 /v1 포함 여부와 trailing slash 처리에 대한 체크리스트를 제공합니다.
핵심 포인트
- API 호출 실패의 주된 원인은 모델 품질이 아닌 경로 결합 오류임
- Base URL 설정 시 /v1 경로 누락 여부를 반드시 확인해야 함
- 클라이언트가 기대하는 최종 경로와 실제 생성된 경로를 대조할 것
- OpenAI 호환 API 사용 시 표준적인 경로 구조를 준수해야 함
공개 및 가용성: DaoXE는 우리가 운영하는 멀티 모델 멀티 프로토콜 API 게이트웨이입니다. 공개 베이스:
https://daoxe.com/v1. 중국 본토에서는 사용할 수 없습니다. 이 글은 서비스 약관에 의해 허용된 지역의 개발자들을 위한 것입니다.
내가 목격하는 대부분의 게이트웨이 실패는 모델 품질 때문이 아닙니다.
그것은 경로 결합 (path join) 버그입니다.
호스트에는 접속이 가능합니다. curl에서는 키가 작동합니다. 하지만 클라이언트는 여전히 404 오류를 만납니다.
이 포스트는 API를 탓하기 전에 내가 실행하는 기본 URL (base URL) 체크리스트입니다.
시리즈
- 스모크 테스트 (Smoke test)
- 멀티 프로토콜 (Multiprotocol)
- 클라이언트 설정 (Client setup)
- curl은 OK, IDE는 실패 (curl OK, IDE fails)
- Claude 프로토콜 (Claude protocol)
- models.dev + /models
- 에이전트 사전 점검 (Agent pre-flight)
- 환경 변수 이름 (Env var names)
- 이 포스트: 기본 URL 형태 (base URL shape)
"OpenAI 호환 기본 (OpenAI-compatible base)"이 보통 의미하는 것
많은 클라이언트들은 다음과 같은 루트를 기대합니다:
https://api.example.com/v1
그 다음 클라이언트는 다음을 추가합니다:
/chat/completions
/models
/embeddings
따라서 최종 경로는 다음과 같이 됩니다:
https://api.example.com/v1/chat/completions
만약 당신이 이미 기본 URL에 /chat/completions를 넣었거나, 클라이언트가 이를 추가하지 않을 때 /v1을 누락한다면, 말도 안 되는 경로가 생성됩니다.
실패 표 (Failure table)
| 설정 (Setting) | 최종 경로 증상 (Final path symptom) | 해결 방법 (Fix) |
|---|---|---|
클라이언트가 전체 OpenAI base를 기대할 때 Base에 /v1이 누락된 경우 | 호스트 루트의 /chat/completions에서 404 발생 | https://daoxe.com/v1 사용 |
| ... | ... | ... |
결합된 정확한 URL로 curl을 사용하여 검증하기
단순히 "호스트가 살아있는지"만 테스트하지 마세요.
클라이언트가 호출할 것과 동일한 경로를 테스트하세요:
export DAOXE_API_KEY="your_api_key"
export DAOXE_BASE_URL="https://daoxe.com/v1"
export DAOXE_MODEL="paste_exact_id_from_models"
...
만약 curl 테스트는 통과(green)하는데 클라이언트는 실패(red)한다면, 클라이언트의 요청 URL을 로그로 남기세요. 글자 하나하나(character-for-character) 대조해 보시기 바랍니다.
클라이언트별 멘탈 모델 (Client-specific mental model)
| 클라이언트의 표현 | 실제 의미하는 바 |
|---|---|
| "OpenAI base URL" | /v1을 포함함 |
| ... | ... |
클라이언트의 문서 한 줄을 읽으세요. 모든 "OpenAI 호환 (OpenAI-compatible)" UI가 경로를 동일한 방식으로 결합할 것이라고 가정하지 마세요.
Soft CTA
제품 관련:
https://daoxe.com/?utm_source=devto&utm_medium=organic&utm_campaign=global_launch_baseurl
공개 노트: CLIENT_SETUP.md
클라이언트 이름과 로그에서 확인한 정확한 요청 URL(API 키는 가릴 것)을 댓글로 남겨주세요.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기