1차 공부/기술면접 준비

Restful API / 알고있는 메소드와 그 기준 / RESTful API 가 아닌 것

공대탈출 2023. 2. 21. 14:00

Restful API란?

  • REST란? Representational State Transfer의 약자로 자원을 이름으로 구분하여 자원의 상태를 주고 받는 모든것을 의미
    • HTTP URI를 통해 자원을 명시하고
    • HTTP Method(POST, GET, PUT, DELETE, PATCH)를 통해 해당 자원에 대한 CRUD를 적용하는 것을 의미
      • CRUD란? Create(POST), Read(GET), Update(PUT, PATCH), Delete(DELETE)를 일걷는 말로 대부분의 소프트웨어가 가지는 기본 데이터 처리기능을 의미한다.
  • REST API란? REST의 원리를 따르는 API들을 의미합니다. 올바르게 설계하기 위해서는 규칙을 지켜야합니다.
    1. URI는 동사보다 명사를, 대문자보다는 소문자를 사용해야한다.
      (http://coding.com/User❌ http://coding.com/Starting❌    |    http://coding.com/user⭕)
    2. 마지막에 슬래시를 포함하지 않는다.
      (http://coding.com/user/❌   |     http://coding.com/user ⭕)
    3. 언더바 대신 하이폰을 사용한다.
      (http://coding.com/user_kakao❌    |    http://coding.com/user-kakao⭕)
    4. 파일확장자는 URI에 포함하지 않는다.
      (http://coding.com/user_img.jpg❌    |    http://coding.com/user_img⭕)
    5. 행위를 포함하지 않는다.
      (http://coding.com/delete_post/1❌    |    http://coding.com/post/1⭕)
  • RESTful이란? REST의 설계규칙을 올바르게 지킨 시스템을 RESTful하다 말할 수 있으며, 모든 CRUD 기능을 POST로 처리하는 API혹은 URI규칙을 지키지 않은 API는 REST API의 설계 규칙을 올바르게 지키지 못한 시스템은 RESTful하다고 말할 수 없습니다.

따라서 RESTful API란 REST의 설계규칙을 올바르게 지키는 REST API를 제공하는 웹 서비스를 의미합니다.

 

메소드는 어떤게 있나?

  • GET : 자원을 받아올 때 사용한다.
    • 자원의 상태를 변경시키지 않아 safe method라고 불리고, 멱등성을 띈다.
      • 멱등성 : 동일 API를 여러번 호출해도 동일한 결과를 얻을 수 있는 속성
  • POST : 새로운 자원을 추가할 때 사용한다.
    • 서버의 상태를 변경시켜 비멱등성을 띈다. 응답코드로 201을 받아야 정상적으로 서버에 추가되었음을 확인할 수 있다.
  • PUT : 존재하는 자원을 전체적으로 변경할 때 사용한다.
    • 자원이 존재하지 않는 경우, API는 자원을 생성할 수 있으며 이 경우 201코드를 받게 된다.
    • 자원을 변경한 경우 200또는 204코드를 받게된다.
    • PATCH와는 다르게 데이터 전체를 바꾸게된다.
  • PATCH : 한 자원의 데이터를 부분적으로 변경할 때 사용한다.
    • PUT과 마찬가지로 자원을 변경하지만, 자원의 데이터를 부분적으로 변경할 때 사용한다.
    • PATCH의 경우 모든 브라우저, 서버, 앱 어플리케이션 프레임워크에서 지원하는 것은 아니라 확인을 한 후 사용해야 한다.
  • DELETE : 자원을 삭제할 때 사용한다.
    • 멱등성 성질을 띈다고 할 수 있다. DELETE 메소드를 요청했을 때 자원을 삭제한 후 반복적으로 요청하게되면 404에러코드를 받게 되므로 멱등성의 성질을 띈다고 할 수 있다.

 


참고자료

https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html

 

[Network] REST란? REST API란? RESTful이란? - Heee's Development Blog

Step by step goes a long way.

gmlwjd9405.github.io

https://khj93.tistory.com/entry/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-REST-API%EB%9E%80-REST-RESTful%EC%9D%B4%EB%9E%80

 

[네트워크] REST API란? REST, RESTful이란?

REST API란 REST를 기반으로 만들어진 API를 의미합니다. REST API를 알기 위해 REST부터 알아보도록 하겠습니다. REST란? REST(Representational State Transfer)의 약자로 자원을 이름으로 구분하여 해당 자원의 상

khj93.tistory.com

https://aws.amazon.com/ko/what-is/restful-api/

 

RESTful API란 무엇인가요? - RESTful API 설명 - AWS

Amazon API Gateway는 어떤 규모에서든 개발자가 API를 손쉽게 생성, 게시, 유지 관리, 모니터링 및 보안 유지할 수 있도록 하는 완전관리형 서비스입니다. API Gateway를 사용하면 실시간 양방향 통신 애

aws.amazon.com

https://velog.io/@ellyheetov/REST-API

 

REST API란, HTTP Method

REST란? 웹에 존재하는 모든 자원(이미지, 동영상, DB)에 고유한 URL을 부여하여 활용하는 것을 의미한다. 자원을 정의하고 자원에 대한 주소를 지정하는 방법론이다. 자원의 이름(자원의 표

velog.io