Response
Header
| Name |
Description |
Example |
Content-Type |
응답 본문 형식 |
application/json; charset=utf-8 또는 |
| application/hal+json; charset=utf-8 |
|
|
Link |
API 스키마 문서 참조 |
|
| (기계 해석용) |
https://api.example.com/schema/v1/openapi.json; rel="describedby"; type="application/json" |
|
Retry-After |
Rate-limit 제한 후 안내 |
60 |
Cache-Control |
캐싱 전략 |
no-store, max-age=60 |
Data
| Name |
Type |
Description |
Example |
email |
String |
인증 요청 이메일 |
abc123@gmail.com |
expired_at |
DateTime |
코드 만료 시각 (ISO 8601) |
2025-05-21T13:47:00Z |
StatusCode
| Code |
Meaning |
Message |
| 101 |
Switching Protocols |
서버가 클라이언트의 프로토콜 변경 요청을 수락했습니다. |
| 200 |
OK |
요청이 성공적으로 처리되었습니다. |
| 201 |
Created |
요청이 성공하여 새로운 리소스가 생성되었습니다. |
| 202 |
Accepted |
요청이 접수되었으나 처리가 완료되지 않았습니다. |
| 204 |
No Content |
요청은 성공했지만 반환할 콘텐츠가 없습니다. |
| 301 |
Moved Permanently |
요청한 리소스가 영구적으로 새 URL로 이동했습니다. |
| 302 |
Found (Moved Temporarily) |
요청한 리소스가 일시적으로 다른 URL에 있습니다. |
| 304 |
Not Modified |
리소스가 변경되지 않았으므로 클라이언트는 캐시된 버전을 사용할 수 있습니다. |
| 400 |
Bad Request |
잘못된 문법으로 인해 서버가 요청을 이해할 수 없습니다. |
| 401 |
Unauthorized |
요청에 인증이 필요합니다. |
| 403 |
Forbidden |
서버가 요청을 이해했지만 승인을 거부했습니다. |
| 404 |
Not Found |
요청한 리소스를 찾을 수 없습니다. |
| 405 |
Method Not Allowed |
요청한 HTTP 메서드가 허용되지 않습니다. |
| 408 |
Request Timeout |
서버가 요청을 기다리는 동안 시간이 초과되었습니다. |
| 409 |
Conflict |
요청이 현재 리소스의 상태와 충돌합니다. |
| 422 |
Unprocessable Entity |
조건 불충족 |
| 429 |
Too Many Requests |
사용자가 지정된 시간 동안 너무 많은 요청을 보냈습니다. |
| 500 |
Internal Server Error |
서버에 예기치 않은 오류가 발생하여 요청을 처리할 수 없습니다. |
| 501 |
Not Implemented |
서버가 요청된 기능을 지원하지 않습니다. |
| 502 |
Bad Gateway |
게이트웨이 또는 프록시 서버가 업스트림 서버로부터 잘못된 응답을 받았습니다. |
| 503 |
Service Unavailable |
서버가 일시적으로 요청을 처리할 수 없습니다 (과부하 또는 유지보수). |
| 504 |
Gateway Timeout |
게이트웨이 또는 프록시 서버가 업스트림 서버로부터 응답을 받지 못했습니다. |
Sample
200 인증 코드가 이메일로 전송되었습니다
HTTP/2 200 OK
Content-Type: application/json;charset=UTF-8
Cache-Control: no-store, max-age=60
{
"message": "인증 코드가 이메일로 전송되었습니다.",
"data": {
"email": "abc123@gmail.com",
"expired_at": "2025-05-21T13:47:00Z"
}
}
201 회원가입이 완료되었습니다
HTTP/2 201 Created
Content-Type: application/hal+json; charset=utf-8
Location: /accounts/1
Link: <https://api.example.com/schema/v1/openapi.json>; rel="describedby"; type="application/json"
{
"message": "회원가입이 완료되었습니다.",
"data": {
"account_id": 1,
"email": "abc123@gmail.com",
"type": "id"
},
"_links": {
"self": {
"href": "/accounts/1"
}
}
}
400 이메일 검증 실패
HTTP/2 400 Bad Request
Content-Type: application/problem+json; charset=utf-8
{
"type": "<https://api.inssider.com/problems/email-invalid-format>",
"title": "이메일 검증 실패",
"status": 400,
"detail": "유효한 이메일 형식이 아닙니다.",
"instance": "/api/auth/email/challenge"
}
429 너무 많은 요청
HTTP/2 429 Too Many Requests
Content-Type: application/problem+json; charset=utf-8
Retry-After: 60
Cache-Control: no-store, max-age=60
{
"type": "<https://api.inssider.com/problems/email-rate-limit>",
"title": "너무 많은 요청",
"status": 429,
"detail": "최근 1분 내 재요청은 허용되지 않습니다. 잠시 뒤에 다시 시도하세요.",
"instance": "/api/auth/email/challenge"
}
503 인증 이메일 발송 실패
HTTP/2 503 Service Unavailable
Content-Type: application/problem+json; charset=utf-8
{
"type": "<https://api.inssider.com/problems/email-send-failure>",
"title": "인증 이메일 발송 실패",
"status": 422,
"detail": "메일 서버 오류로 인해 인증 이메일을 전송할 수 없습니다.",
"instance": "/api/auth/email/challenge"
}