Categories
Algorithm🧩
백준 📝
BookReview📕
CleanCode✨
Network 📨
Database 🗄
DevOps☁️
에러 일기📕
Etc💬
Fishy Fish 🎣
Spring🌱
RestAPI
API: 프로그램 실행 인터페이스
- 프로그램에 요청을 전달하기 위한 통로 혹은 방법
HTTP Method
- GET: 조회
- POST: 리소스 생성 (정보를 보내겠다)
- PUT: 리소스 전체 갱신
- DELETE: 리소스 삭제 (지정한 서버의 파일을 삭제)
설계 예시
- 전체 리소스 조회: GET /resources
- 특정 리소스 조회: GET /resource/:id
- 리소스 생성: POST /resources
- 리소스 전체 수정: PUT /resources/:id
- 특정 리소스 삭제: DELETE /resources/:id
리소스 디자인 가이드
- URI는 정보의 자원을 표현해야함. - 행위 표현 자제 ex) member/delete/1
- 자원에 대한 행위는 HTTP Method로 표현해야 함
- URI에는 복수 명사 사용
- 슬래시 구분자는 계층 관계를 나타내는 데 사용
- URI 마지막 문자로 슬래시 포함 X
- 하이픈은 URI 가독성을 높일 경우 사용
- 밑줄은 URI에 사용하지 않는다
- 대문자 사용 안함
- 파일 확장자를 URI에 포함시키면 안된다.
- Collection과 Document: 자원 표현 방식
- Document: 문서, 객체
- Collection: 문서들의 집합, 객체들의 집합
→ 모두 리소스라고 표현 된다
ex) sports/soccer: sports라는 컬렉션, soccer라는 도큐먼트
HTTP 응답 상태 코드
- 200: 클라이언트의 요청을 정상적으로 수행
- 201: 클라이언트가 어떠한 리소스 생성을 요청, 해당 리소스가 성공적으로 생성
- 400: 클라이언트의 요청이 부적절한 경우
- 401: 클라이언트가 인증되지 않은 상태에서 보호된 리소스를 요청했을 경우 사용
- 403: 유저의 인증상태와 관계 없이 응답하고 싶지 않은 리소스를 클라이언트가 요청했을 경우 사용
- 404: 사용자가 요청하는 페이지나 파일을 찾을 수 없을 경우 발생
- 405: 클라이언트가 요청한 리소스에서는 사용 불가능한 Method를 이용했을 경우
- 301: 클라이언트가 요청한 리소스에 대한 URI가 변경되었을 경우
- 505: 서버에 문제가 있을 경우 사용