API Status Codes and OpenAPI Documentation - Backend Engineering
- API는 백엔드에 요청을 보내고 응답을 받는 방식으로, 응답에는 상태 코드(예: 200 OK)와 메시지가 포함됩니다. 📡
- 백엔드 개발자는 클라이언트에 어떤 코드를 보낼지 결정할 수 있지만, 일반적인 규칙을 따르면 사용하기 쉬운 API를 만들 수 있습니다. ⚙️
- OpenAPI 스펙과 같은 명세(spec)를 따르면 API 사용이 더 쉬워지며, API의 동작, 예상 데이터, 응답 등을 명세 파일에 기술합니다. 📚
- API 응답 body 구조는 배열, 객체, 또는 중첩된 객체 형태로 데이터를 반환할 수 있으며, 배열을 직접 반환하는 것보다 객체 내에 배열을 포함하는 것이 좋습니다. 📦
- 단일 객체를 반환하는 경우에도, 일관성을 유지하고 추가 정보를 제공하기 위해 객체를 더 큰 객체 내에 중첩시키는 것이 좋습니다. 🗂️
- HTTP 상태 코드에는 200(OK), 201(Created), 204(No Content), 301/302(Redirect), 400(Bad Request), 404(Not Found), 500(Internal Server Error) 등이 있습니다. 🔑
- GET(many) 요청은 200과 함께 배열을 반환하며, 데이터가 없으면 빈 배열을 반환합니다. 📃
- GET(single) 요청은 200과 함께 객체를 반환하지만, 해당 리소스가 없으면 404를 반환합니다. 🎯
- POST 요청은 주로 201(Created)을 반환하며, 새로 생성된 리소스의 ID나 전체 객체를 반환하고, 잘못된 데이터가 있으면 400을 반환할 수 있습니다. ➕
- PUT/PATCH 요청은 200 또는 204를 반환하며, 업데이트된 객체를 반환하거나, 리소스가 없으면 404, 잘못된 데이터에는 400을 반환할 수 있습니다. ✏️
- DELETE 요청은 주로 204를 반환하지만, 200과 함께 영향을 받은 행 수를 반환할 수도 있으며, 삭제할 리소스가 없으면 404를 반환합니다. 🗑️
- 클라이언트는 상태 코드를 기반으로 동작을 조정할 수 있으며, 예를 들어 POST 요청에 대한 응답이 200이면 댓글을 피드에 추가하고, 400이면 오류 메시지를 표시합니다. 💡