-
[WEB] Restful APICS/WEB 2021. 8. 9. 20:22
📝 Restful API
💻 REST(REpresentational State Transfer)
✔ HTTP 통신에서 어떤 자원에 대한 CRUD 요청을 Resource와 Method로 표현하여 특정한 형태로 전달하는 방식이다.
✔ Restful한 API가 되기 위해서는 REST의 특징을 갖추어야 한다.
🔧 REST의 특징
- 일관된 인터페이스: URI로 지정한 리소스에 대한 조작 요청은 클라이언트의 플랫폼에 무관하며, 특정 언어에 종속받지 않는다.
- 무상태성(Stateless): 이전 요청이 다음 요청과 연관되지 않는다.
- 캐시: 캐싱 기능을 적용할 수 있다.
- 자체 표현 구조: 요청 메시지만 보고도 이를 쉽게 이해할 수 있어야 한다.
- 클라이언트-서버 구조: REST서버는 API제공, 클라이언트는 자원 요청, 사용자 인증 이나 컨텍스트(세션, 로그인 정보)등을 직접 관리하는 구조이다.
- 계층형 구조: REST 서버는 다중 계층으로 구성될 수 있으며 보안, 로드 밸런싱, 암호화 계층을 추가해 구조상의 유연성을 둘 수 있고 PROXY, 게이트웨이 같은 네트워크 기반의 중간매체를 사용할 수 있게 한다.
💻 Restful API
🔧 RESTful API의 구성
- 자원(Resource) - URI
- 행위(Method) - HTTP METHOD
- 표현(Representation Of Resource) - DATA
🔧 RESTful API의 규칙
- URI는 명사를 사용한다.
- 슬래시로 계층 관계를 표현한다.
- URI의 마지막에는 슬래시를 붙이지 않는다.
- URI는 소문자로만 구성한다.
- 가독성이 떨어지는 경우 하이픈(-)을 사용한다.
🔧 Restful API의 장점
- 원하는 타입으로 데이터를 주고 받을 수 있다.
🔧 Restful API의 단점
- 사용할 수 있는 메소드가 4가지 밖에 없다.
- HTTP 통신 모델에 대해서만 지원한다.
💻 HTTP 응답 상태 코드
✔ REST API는 URI만 잘 설계된 것이 아닌 그 리소스에 대한 응답을 잘 내어주어야 한다.
🔧 200번대
- 200: 클라이언트의 요청을 정상적으로 수행했다.
- 201: 클라이언트가 어떠한 리소스 생성을 요청하고, 해당 리소스가 성공적으로 생성되었다.(POST요청)
- 202: 클라이언트의 요청은 정삭적이나, 서버가 아직 요청을 완료하지 못했다.
🔧 300번대
- 302: 클라이언트가 요청한 리소스가 임시적으로 새로운 URL로 리다이렉트됐다.
🔧 400번대
- 400: 클라이언트의 요청이 부적절한 경우이다.
- 401: 인증되지 않은 클라이언트가 권한이 없어 작업을 진행할 수 없는 경우이다.
- 403: 인증된 클라이언트가 권한이 없어 작업을 진행할 수 없는 경우이다.
- 404: 클라이언트가 요청한 자원이 존재하지 않는다.
- 405: 클라이언트가 요청한 리소스에서 사용 불가능한 Method(get, post, delete, put)를 이용한 경우이다.
🔧 500번대
- 서버 오류로 인해 요청을 수행할 수 없다.
REFERENCE
https://mangkyu.tistory.com/46
https://meetup.toast.com/posts/92
'CS > WEB' 카테고리의 다른 글
[WEB]웹 서버 VS WAS (0) 2021.07.19 [WEB]CORS (0) 2021.07.13 WEB - AJAX (0) 2021.02.26 WEB - WAS (0) 2021.02.20 WEB - SPA (0) 2021.02.20