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 |