[통신] RESTful API

sangmeen16·2022년 3월 6일
0

REST API란?

REpresentational State Transfer (대표 상태 전송)의 줄임말로 웹에 존재하는 모든 자원에 고유한 URL을 부여하여 자원에 대한 주소를 지정하는 규칙.
특성 - 각 요청이 어떤 동작이나 정보를 위한 것인지를 그 요청의 모습 자체로 추론이 가능하다.

정의만 봐서는 무슨 느낌인지 모르겠으니 예를들어보자.
어떤 학원에 반과 학생들에 대한 API를 만들 때 아래와 같은 주소를 만든다고 생각해보자.

https://(사이트도메인)/1 -> 학원의 반 리스트 요청
https://(사이트도메인)/hello -> 반의 학생들 리스트 요청
https://(사이트도메인)/sang -> 학생의 정보 수정 요청

이런 식으로 요청을 보내는 앱을 만들면 서비스 기능 자체에는 문제가 없을 것이다.
그러면 어떤 문제가 있을까?
그렇다. 서비스는 개발자 1명이 만드는 것이 아니다.
RESTful하게 만든 API는 요청을 보내는 주소만으로도 다른 사람이 봤을 때 이게 뭘 요청하는 것인지 대략적으로 파악이 가능하다.

https://(사이트도메인)/classes -> 학원의 반 리스트 요청
https://(사이트도메인)/classes/2 -> 학원 2반의 정보 요청
https://(사이트도메인)/classes/2/students -> 학원 2반의 학생 정보 요청
https://(사이트도메인)/classes/2/students/15 -> 학원 2반의 학생15 정보 요청
https://(사이트도메인)/classes/2/students?sex/male -> 학원 2반의 학생들 중 남학생에 대한 정보 요청


GET, POST, DELETE, PUT, PATCH

서버에 REST API로 요청을 보낼 때는 HTTP 규약에 따라 신호를 전송한다.
전송하는 방법에는 5가지가 있다.

GET, POST, DELETE, PUT, PATCH

여기서 POST,PUT,PATCH에는 body란 주머니가 있어서 더 많은 정보들을 담는다.
RESTful하게 사용하기 위해서 이 5가지를 목적에 따라 구분해서 사용해야 한다.

  1. GET - 데이터를 조회하는데 사용한다.

    https://(사이트도메인)/classes/2/students -> 아 학원 2반의 학생 정보를 보는 요청이구나?

  2. POST - 새로운 정보를 추가하는데 사용한다.

    이 반에 새 학생이 들어와서 정보를 추가하려면 아래와 같이 url을 짜고 post요청을 작성해서 body에 새 학생의 정보를 실어 보낸다. 학생 인덱스는 정보가 추가되면서 생성되기 때문에 인덱스를 명기안한다.
    만약 정보가 변경되었다면 변경할 학생의 인덱스가지 명기한 후 업데이트된 새 정보들을 body에 실어보낸다.
    https://(사이트도메인)/classes/2/students

  3. PUT - POST와 거의 같다.

    하지만 PUT은 정보를 통째로 갈아끼울 때, PATCH는 정보 중 일부를 특정 방식으로 변경할 때 사용한다.

profile
꾸준히.... 깔끔하게.... 끝까지....

0개의 댓글