본문 바로가기
Backend boot camp/Session2

REST API

by orioncsy 2022. 10. 3.

REST API

개념

REpresentational State Transfer

  • 리소스를 HTTP URI로 표현하고 HTTP 프로토콜로 통신을 정의하는 방식

RestAPI 성숙도 모델

  • 0단계(HTTP 사용)
    • HTTP 프로토콜을 단순히 사용
  • 1단계(개별 리소스와의 통신 준수)
    • 모든 데이터와 리소스를 HTTP URI로 표현
    • 개별 리소스에 대한 엔드포인트를 사용
    • 엔드포인트 작성 시 명사 형태로 작성
    • 응답에 성공/실패 여부를 포함한 응답 반환
  • 2단계(HTTP 메서드 원칙 준수)
    • 요청 메서드는 CRUD에 맞게 HTTP 메서드 준수해서 작성
    • GET의 경우 query parameter를 통해 리소스 전달
    • 응답 코드도 HTTP 메서드에 준수
    • 관련 리소스를 Location 헤더에 URI로 작성
    • PUT과 같이 멱등성을 가지는 메서드는 같은 리소스를 반환
    • PUT은 대체, PATCH는 수정
  • 3단계(HATEOAS 원칙 준수)
    • Hypertext As The Engine Of Application State
    • 하이퍼미디어 컨트롤 적용
    • 리소스의 URI를 포함한 링크 작성
    • 응답을 받은 다음 할 수 있는 액션들 포함

Open API & API Key

Open API

  • 공공데이터를 쉽게 접근할 수 있도록 만든 API
  • 사례) Open Weather Map

API Key

  • 로그인된 이용자에게만 제한적으로 리소스 접근을 허용하도록 API Key를 제공
  • 리소스를 서버에 요청할 때 Key와 함께 요청

Postman 사용 방법

HTTP API Test Tool

  • 서버 API를 테스트하거나 만드는 과정에 유용
  • CLI - curl, wuzz
  • GUI - Postman, Insomnia

Postman 화면 구성

  • 탭 추가(요청/응답 복수 확인)
  • HTTP method
  • URL 입력창
  • HTTP 요청 버튼
  • 요청 시 설정할 수 있는 옵션(ex - Params 탭에 key, value에 필요한 값 입력)
  • HTTP 응답 화면

GET 요청

  • URL
  • GET [endpoint]
  • 추가적인 파라미터
  • 응답은 JSON 형식
  • 응답 파라미터 정보

Post 요청

  • URL
  • POST [endpoint]
  • 요청 body에 JSON 형식(raw)으로 파라미터 정보 입력
    • HTTP 요청 헤더에 Content-Type: application/json과 같은 효과
  • 응답은 JSON 형식

응답

  • HTTP 응답 상태 코드를 확인하여 문제 해결

'Backend boot camp > Session2' 카테고리의 다른 글

Spring Framework Basics  (1) 2022.10.18
Relational DataBase  (0) 2022.10.03
Network  (1) 2022.09.30
[알고리즘] 알고리즘  (0) 2022.09.25
[자료구조/알고리즘] 자료구조  (0) 2022.09.25