API 문서
Alpacon은 서버의 상태를 제어하고 관리할 수 있는 RESTful API를 제공합니다. API의 루트 경로는 /api/입니다.
API 엔드포인트
각 워크스페이스는 전용 API 엔드포인트를 갖습니다:
https://<workspace>.<region>.alpacon.io/api/
여기서:
<workspace>: 워크스페이스 슬러그<region>: 워크스페이스 리전 (생성 시 할당)
예시: https://mycompany.us1.alpacon.io
💡 엔드포인트 확인하기: Personal Settings에서 워크스페이스 엔드포인트 URL 전체를 확인할 수 있습니다.
이 문서의 모든 API 예시는 https://your-workspace.us1.alpacon.io를 placeholder로 사용합니다. 실제 워크스페이스 엔드포인트로 대체하세요.
인증
모든 API 요청에는 API 토큰이 필요합니다. Authorization 헤더에 토큰을 포함하세요:
Authorization: token="alpat-xxxxxxxxxxxxxxxxxx"
토큰은 API 토큰 페이지에서 생성 및 관리하거나, Alpacon 웹 콘솔의 Personal Settings > API tokens에서 관리할 수 있습니다.
전역 정보
HTTP 메서드
| 메서드 | 용도 |
|---|---|
GET | 리소스 목록 조회 또는 단일 조회 |
POST | 리소스 생성 |
PUT | 리소스 전체 교체 |
PATCH | 리소스의 특정 필드 수정 |
DELETE | 리소스 삭제 |
자세한 내용은 MDN HTTP 메서드 레퍼런스를 참조하세요.
URL 구조
API는 다음과 같은 URL 구조를 따릅니다:
- 목록 조회 또는 생성:
/api/<collection>/<resource>/ - 단일 조회, 수정, 삭제:
/api/<collection>/<resource>/<id>/ - 추가 액션:
/api/<collection>/<resource>/<id>/<action>/
예를 들어, GET /api/iam/users/a540bf0f-8b37-4f03-8546-dd71c6b03329/는 해당 사용자의 상태를 조회합니다.
※ 모든 API URL은 슬래시(/)로 끝납니다.
상태 코드
성공 코드:
| 코드 | 의미 | 일반적인 메서드 |
|---|---|---|
200 OK | 요청 성공 | GET, PUT, PATCH |
201 Created | 리소스 생성됨 | POST |
204 No Content | 리소스 삭제됨 | DELETE |
오류 코드:
| 코드 | 의미 |
|---|---|
400 Bad Request | 잘못된 요청 데이터. 필드별 상세 내용은 에러 메시지를 참조하세요. |
401 Unauthorized | 인증되지 않음. 유효한 자격 증명 또는 토큰을 제공하세요. |
403 Forbidden | 권한 없음. 인증된 사용자이지만 해당 작업에 대한 권한이 부족합니다. |
404 Not Found | 리소스가 존재하지 않음. |
405 Method Not Allowed | 이 엔드포인트에서 지원하지 않는 HTTP 메서드. |
500 Server Error | 서버 내부 오류. |
HTTP 상태 코드의 전체 목록은 MDN HTTP 상태 코드 레퍼런스를 참조하세요.
에러 메시지
앞서 언급한 바와 같이, 400 Bad Request가 발생할 경우 Alpacon은 필드별 에러 메세지와 non-field_errors 에러 메세지를 JSON 형태로 제공합니다.
예를 들어, 사용자의 비밀번호를 변경할 때 비밀번호가 서버 측 검증을 통과하지 못하면 아래와 같은 에러가 발생할 수 있습니다. 필드 이름(password)이 에러 메시지의 키로 사용됩니다. 클라이언트는 이 메시지를 파싱해 사용자에게 적절히 안내해야 합니다.
HTTP 400 Bad Request
Allow: GET, PUT, PATCH, DELETE, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
{
"password": [
"비밀번호가 너무 짧습니다. 최소 8자 이상이어야 합니다.",
"비밀번호가 너무 흔합니다.",
"비밀번호가 모두 숫자로만 이루어져 있습니다."
]
}
non-field_errors는 개체 수준의 검증 실패 시 발생합니다. 예를 들어, 그룹의 소유자를 삭제하려 할 때 해당 사용자가 유일한 소유자인 경우, 다음과 같은 오류가 반환됩니다. 이 경우에는 non_field_errors 키가 사용됩니다.
HTTP 400 Bad Request
Allow: GET, PUT, PATCH, DELETE, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
{
"non_field_errors": [
"현재 사용자는 그룹의 유일한 소유자입니다. 삭제를 진행하려면 다른 소유자를 추가하세요."
]
}
Alpacon 주요 기능
다음 문서들은 각 API 컬렉션에 대한 세부 정보를 제공합니다.