REST API

최지홍·2022년 4월 25일
0

매일 공부

목록 보기
35/40

OPEN API

  • API: Application Programming Interface
  • Open API는 프로그래밍에서 사용할 수 있는 개방되어 있는 상태의 인터페이스(약속, 규약)
  • Open API와 함께 거론되는 기술이 REST이며, 대부분의 Open API는 REST 방식으로 지원

REST

  • Representational State Transfer의 약어로, 하나의 URI는 하나의 고유한 자원을 대표하도록 설계
  • URI + (GET / POST / PUT / DELETE)
  • 웹의 장점을 최대한 활용할 수 있는 아키텍처로 REST 발표
  • Http URI를 통해 제어할 자원을 명시하고, Http Method를 통해 해당 자원을 제어하는 명령을 내리는 방식의 아키텍처
  • 자원(Resource) - URI
  • 행위(Verb) - Http Method
  • 표현(Representations)
  • 자원은 JSON, XML과 같은 여러 가지 언어로 표현할 수 있음
  • 기존의 전송방식과 달리 순수 데이터를 전송
  • 암묵적 표준만 존재
    • 하이픈은 사용 가능하지만 언더바는 사용하지 않음
    • 특별한 경우를 제외하고 대문자 사용은 하지 않음
    • URI 마지막에 슬래시를 사용하지 않음
    • 슬래시로 계층 관계 표현
    • 확장자가 포함된 파일 이름을 직접 포함시키지 않음
    • URI는 명사

기존과의 차이

  • 기존 서비스에서는 요청에 대한 처리를 한 후 가공된 데이터를 이용하여 특정 플랫폼에 적합한 형태의 View로 만들어서 반환
  • Rest 서비스에서는 데이터의 처리만 한다거나, 처리 후 반환될 데이터가 있다면 JSON이나 XML 형식으로 전달한다. View에 대해서는 신경 쓸 필요가 없다.

관련 Annotation

  • @RestController: Controller가 REST 방식을 처리하기 위한 것임을 명시 → View의 이름이 아니라 데이터를 반환하는 메서드를 가지는 컨트롤러
  • @ResponseBody: JSP 같은 뷰로 전달되는 것이 아니라 데이터 자체를 전달
  • @PathVariable: URL 경로에 있는 값을 파라미터로 추출
  • @CrossOrigin: Ajax의 크로스 도메인 문제를 해결. 선언만 할 경우 모든 출처를 허용하고, 명시적으로 표시하면 제한
  • @RequestBody: JSON 데이터를 원하는 타입으로 바인딩
profile
백엔드 개발자가 되자!

0개의 댓글