RESTful API
일단!!!!! RESTful을 이해하기 앞써!! 먼저 알아봐야할 것을 먼저 살펴 보겠슴돠!
REST(Repersentational State Transfer)
- 클라이언트 < ---- > 서버의 통신 방식
- URI(Uniform Resource Indentifier) 와 HTTP를 이용한 통신목적 아키텍처
RESTful
REST API
한마디로! REST API를 제공하는 시스템은 RESTful 이다
또한 REST 는 6가지의 조건이 필요하게 된다!
- 일관된 인터페이스
URI 사용, HTTP Method 사용 RPC 미호출 등의 지정된 인터페이스를 준수해야함!
- 클라이언/서버
클라이언트는 서버에 요청(request) 메세지를 전송하고
서버는 요청에 대한 응답(response) 메세지를 전송한다!
- 비연결성
세션 등 이전 상황(문맥) 없이도 통신 할수 있다.
- 캐싱
서버의 응답 메세지는 캐싱 될수 있다.
- 계층화된 시스템
계층별로 기능이 분리된다.
중간 계층의 기능(로드 밸런싱, 서버 증설, 인증 시스템 도입) 이 변경되어도 통신에 영향 X
- 주문형 코드
손쉬운 데이터 처리를 위해
서버는 클라이언트에서 실행될 스크립트를 전송할 수 있다.
흠흠흠...일단 RESTful은 어쨌든 서버와의 통신하는 방법 이다! 라는것은 이해가 간다..
위에 내용을 토대로 조금더 정리를 해보자면
HTTP 에서 데이터를 주고 받을때 조금더 보안된 형식의 인터페이스
라고 이해하면 될것 같다.
REST 라는 아키텍처(MVVM , MVC 등등과 같은)구조로 구현된 시스템 이고
굉장히 간단하게 구현할수 있고 편리하여 모바일에는 최적화 된 시스템 이라고 한다..ㅎㅎ
(이래서 기업에서 많이 요구하나 보당..ㅎㅎ)
또한 RESTful 은 데이터를 JSON 으로 보낸다.
그래서 JSON 에 대한 이해가 필요함!!
REST(Repersentational State Transfer)
구성
- 자원(RESOURCE) - URI
- 행위(Verb) - HTTP METHOD
- 표현(Representations)
REST는 위 3가지로 구성된다.
REST API 디자인 가이드
- URI는 정보의 자원을 표현해야 한다.
- 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE)로 표현한다.
일단 요기까지 그러니깐!! RESTAPI는 라이브러리를 뜻하는 것이 아닌
서버에서 데이터를 가져오고 그것을 처리하기 위한 모델링을 뜻하는것 같다!
Swift에는 Alamofire 아주 좋은 라이브러리가 있으니 이것을 RESTful 화 하여 작업해 본후 포스팅을 한번더 해야겠다.