목차
- REST API
- 정의
- 성숙도 모델
- 이점
- API test 실습
REST API ( REpresentational State Transfer ApI)
- REST API 정의
웹에서 사용되는 데이터나 자원(resource)을 HTTP URI로 표현하고, HTTP 프로토콜을 통해 요청과 응답을 정의하는 방식
- REST 성숙도 모델 ( 0~3 단계)
- 0단계: 단순히 HTTP 프로토콜 사용, single URI and use a single HTTP method (typically POST).
예시
![](https://blog.kakaocdn.net/dn/bdeU7x/btrNPzzOJqa/z7SXimVlWDxca2gtKBT7P1/img.jpg)
- 1단계:
개별 리소스와의 통신 준수,
모든 자원은 개별 리소스에 맞는 엔드포인트를 사용, 요청하고 받은 자원에 대한 정보를 응답으로 전달해야 함
어떤 리소스를 변화시키는지 혹은 어떤 응답이 제공되는지에 따라 각기 다른 엔드포인트를 사용하기 때문에, 적절한 엔드포인트를 작성하는게 중요
엔드포인트 작성 시 동사, HTTP메서드, 혹은 어떤 행위에 대한 단어 사용은 지양하고, 리소스에 집중해 명사 형태의 단어로 작성하는 것이 바람직
but only a single HTTP verb – generally HTTP POST.
예시
![](https://blog.kakaocdn.net/dn/lFxGo/btrNNLHK1LK/utUQuc12YLFmgwGxZQN3dK/img.jpg)
- 2단계:
CURD에 맞게 적절한 HTTP 메서드를 사용했는가
메서드 종류
get : 서버의 데이터를 변화시키지 않는 요청
post: 요청마다 새로운 리소스 생성(멱등성x)
put: 요청마다 같은 리소스를 반환(멱등)
patch: 수정의 용도, put은 교체( 일부와 전체의 차이)
예시
![](https://blog.kakaocdn.net/dn/beA6uT/btrNN0xV7lp/F9gWGDa2ooikaJ9llnmeXK/img.jpg)
3단계:
HATEOAS(Hypertext As The Engine Of Application State) : 하이퍼 미디어 컨트롤
2단계와 동일하지만, 응답에는 리소스의 URI를 포함한 링크 요소를 삽입한다는게 다름
예시
![](https://blog.kakaocdn.net/dn/cnMmcG/btrNPidNb40/Bd0GlvONHoYbxunHg3PrS0/img.jpg)
- REST API 이점
SOAP와 달리 XML, YAML 및 JSON을 포함한 다양한 메세징 형식과 호환
비교적 더 가벼움
API Test 실습
위의 두 사이트를 이용해 테스트를 진행할 수 있음
주의할 점은 openweathermap의 API key를 사용하려면 회원가입 후 30분~2시간 정도 지나야 가능
참고
'부트캠프 기록 > Serction2' 카테고리의 다른 글
[데이터베이스] SQL DB Schema (0) | 2022.10.07 |
---|---|
[데이터베이스] SQL (0) | 2022.10.06 |
[네트워크] 웹 애플리케이션 작동원리 (0) | 2022.10.01 |
[JAVA] Collectors 와 Collections 차이 (0) | 2022.09.28 |
[자료구조/알고리즘] 자료구조 (0) | 2022.09.27 |