2018-12-6 면접준비1
Rest API
왜 Rest에 관심이 생겼나?
- 다양한 클라이언트들의 출현으로 프론트엔드와 백엔드의 분리가 되기 시작.
- JSON형태로 데이터를 제공하는 API를 제공하자고 동의
- RequestMethod(HTTP : get, post, put, delete)와 URL을 이용한 정의
- 멀티플랫폼에 대한 지원을 위해 서비스 자원에 대한 아키텍처를 세우고 이용하는 방법을 모색 : 웹+모바일웹, 아이폰+안드로이드
RestAPI란 무엇인가?
API란 무엇인가? API란 어렵지않다. Java 다른 클래스의 메서드를 사용하는 것도 api를 이용하는 것이다.
- REST는 SOAP이 서비스 지향 구조인 것과 달리 자원지향구조(ROA : Representational State Transfer)로 웹사이트의 컨텍츠(텍스트, 이미지, 동영상), DB의 내용 등을 전부 하나의 자원으로 파악하여 각 자원의 고유한 URI(Uniform Resource Identifier)를 부여하고, 해당 자원에 대한 CRUD(Create, Read, Update, Delete)작업을 HTTP 기본명령어를 통해서 처리를 한다.
Rest API 설계전
- 제공하려고 하는 자원(리소스)가 무엇인가?
- 지원할 Content-Type은 어떤것들이 있나? XML, JSON, RSS
- 구현할 Rest API 이용방법을 어떻게 설명할 것인가? Javadoc? 별도로 기술한 메뉴얼
Rest API 설계
- rest api를 통해 제공하려고 하는 자원은 무엇인가?
- url path는 언제 복수로 써야하는가?
- 리소스 상태를 업그레이드하려면 어떤 메소드를 사용하는가?
- CRUD가 아닌 연산은 어떻게 URL에 매핑하는가?
- 특정한 시나리오에 가장 적합한 HTTP응답은 무엇인가?
- 리소스 상태표현의 버전은 어떻게 관리할 수 있는가?
- JSON에 포함된 하이퍼링크는 어떻게 구조화하는가?
URL(Uniform Resource Identifier)식별자 설계
- 식별자라고 할 수 있는 유일한 일은 대상을 나타내는 것이다.
요청메소드
- get : 리소스 상태의 표현을 얻을 때 사용
- post : 컬렉션에 새로운 리소스를 만들거나 컨트롤러를 실행할 때 사용
- put : 새로운 리소스를 스토어에 추가하거나 기존 리소스를 생산할 때 사용
- delete : 리소스제거
rest의 문제점
- 사용할 수 있는 메서드가 4개밖에 없다.
Written on December 6, 2018