IT/Network
REST API 란?
착한아줌마
2018. 8. 21. 13:52
반응형
REST API에 대해 확인할 필요가 있어
검색하는데
개념이 확 와닿지 않았다..만
네이버 지식인에 어느 분의 답변보고
바로 이해가 됬음
(아 네이버 지식인 안에도 진주가 많음)
* 정의 *
HTTP 기반으로 서버의 필요한 자원에 접근하는 방식 정한 아키텍처
예로 test.com에 test 1번 결과값을
http://test.com/test/1/result
라고 설계해놓을 수 있음
다른 HTTP Method를 사용하여 해당 정보를 수정, 삭제도 가능
(PUT, DELETE)
* REST API의 제약조건 *
1. 클라이언트/서버 : 클라이언트와 서버가 각각 역할이 구분되어야 한다. 서버는 API를 제공하고 API 요청 시 비지니스 로직 처리와 데이터 저장을 책임. 클라이언트는 사용자 인증, 상태(세션, 로그인 정보)관리와 서버 리소스 요청을 책임지는 구조로 역할 구분(상호 의존성을 줄임) 2. 무상태(Stateless) : REST 서버는 작업을 위한 상태정보(세션, 쿠키 등)를 관리하지 않아야 한다. 시스템 영향없이 관리 및 업데이트 가능 3. 캐쉬(Cacheable) : 캐쉬를 제공해야 한다. HTTP 웹표준으로 HTTP가 가진 캐싱 기능이 적용됨 4. 계층화(Layered system) : 서버를 다중 계층으로 구성 할 수 있어야 한다. 비지니스 로직을 수행하는 API 서버와 그 앞단에 사용자 인증, 암호화, 로드밸런싱 등의 계층을 추가해 구조상의 유연성 제공 5. 인터페이스 일관성(Uniform interface) 아키텍처를 단순화하고 분리해 각 부분을 독립적으로 발전 시킬 수 있음 |
* REST API 구성요소 *
- 자원(리소스) : 접근할 대상 - URI를 통해 식별 위 예의 test.com에 test 1번 결과값을 http://test.com/test/1/result라고 표현한 것과 같은 느낌 - 행위(메소드) : 자원에 대한 행위 - 표준 HTTP 메소드에 따라 자원에 접근 위 예의 DELETE 메소드로 http://test.com/test/1/result을 요청하면 해당 정보 삭제 - 정보(메시지) : 자원에 대한 정보 - HTTP 해더와 바디, 응답코드 활용 리소스 요청에 대한 결과를 받는 메시지 방법, HTTP의 바디에 JSON 또는 다른 형식으로 전달 받음 |
사실상 기본적은 GET방식에 쓰이는 쿼리스트링과 비슷하게 느껴지기도 함
정확한 차이까지는 모르겠음
참조
- 네이버 지식인
https://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040203&docId=279350996&qb=cmVzdCBhcGkgcGhw&enc=utf8§ion=kin&rank=1&search_sort=0&spq=0&pid=T0w9WlpVuEKsscpZsZCssssssCo-115579&sid=exyKTAfcRKkhvGjsp15Rtw%3D%3D
의 undefcat님의 답변
- 블로그 http://blog.hjf.pe.kr/462