2018-12-6 면접준비1

Rest API

왜 Rest에 관심이 생겼나?

  1. 다양한 클라이언트들의 출현으로 프론트엔드와 백엔드의 분리가 되기 시작.
  2. JSON형태로 데이터를 제공하는 API를 제공하자고 동의
  3. 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