본문 바로가기

Node.js

[Node.js] 노드 Restful API 는 무엇일까?

728x90

Restful Api는 무엇일까?

* https://www.smashingmagazine.com/2018/01/understanding-using-rest-api/ 를 의역하고 이해한대로 몇가지를 요약해서 작성하였다.

 

Rest

Rest(Representational State Transfer)에 대해 알아보자.

Rest는 API를 만들 때 따라야하는 규칙이다. 규칙 중 하나로는 url 링크에 접속하면 어떠한 데이터(resource라고 불림)를 받아와야한다는 규칙이 있다. 각각의 url은 request라고 부르고, 데이터를 받아오는 것을 response라고 부른다.

 

그리고 Rest 규칙을 잘 지킨 것을 Restful이라고 부른다.

 

 


 

 

다음 내용들은 Rest의 규칙들이다. 

 

 

request에 대해서.

request의 endpoint란?

https://github.com/pulls

이 request(url) 에서 endpoint는 https://github.com/ 부분이고, path는 /pulls 부분이다.

 

/users/:username/repos

이것은 path이다. 이 path에는 : 가 있다. :는 변수이다. 여기서는 username이라는 변수를 사용한 것이고 실제로는 username에 담은 각각 해당되는 user의 name이 들어갈 것이다.

 

?query1=value1&query2=value2

이것은 query parameters 이다. query parameters 는 rest api가 아니지만 자주 찾아볼 수 있다. query parameters 는 ?로 시작하고, 각각의 쌍은 key = value로 이루어지고 &로 구분한다.

 

 

request를 하는 방법

request는 다음과 같은 5개의 유형이 있다.

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
GET 이 requests는 서버에서 데이터(resource)를 가져올 때 쓴다. Get request라고 부르고, 서버는 요청한 정보를 보내준다. Get request를 Read라고도 부른다. 이 request는 기본 request 메소드이다.
POST 이 request는 서버에서 새로운 데이터(resource)를 생성할 때 사용한다. post request를 사용하면 서버는 데이터베이스에 빈공간을 새롭게 만들고, 이 작업이 성공하면 응답을 준다. post reqeust를 Create라고도 부른다.
PUT,
PATCH
이 두개의 request는 서버를 업데이트할 때 사용한다. put이나 patch reauest를 사용하면 서버는 데이터베이스의 공간을 업데이트하고 성공하면 알려준다. put 과 patch request를 update라고도 부른다.
DELETE 이 request는 서버에서 데이터(resource)를 삭제할 때 사용한다. delete request를 사용하면 서버는 데이터베이스의 공간에서 삭제해주고 삭제가 성공하면 알려준다. delete request는 delete라고 부른다.

 

The headers

 

개발자 도구의 network 탭을 누르고 새로고침 후에 목록의 name 중 하나를 클릭해본 내용이다.

header는 클라이언트와 서버 모두에게 정보를 제공하는데 사용한다.

 

 

 

HTTP Status Codes And Error Messages

 

request가 성공, 실패했느냐에 따라 코드를 알려준다. 아래 사진에서는 status code가 200이다. 200은 request가 성공일 때를 알려준다.

 

 

Status Code
200 : request 성공
300 : 다른 url로 redirect됨.(이동됨)
400:  client에서 에러가 났다.
500: server에서 에러가 났다.

 

 

 

 

 

 

 

 

 

 

참고

https://www.smashingmagazine.com/2018/01/understanding-using-rest-api/

https://stackoverflow.blog/2020/03/02/best-practices-for-rest-api-design/

https://www.plesk.com/blog/various/rest-representational-state-transfer/

https://velog.io/@smooth97/Node.js-Restful-API-wok2wqo7yu

https://ko.wikipedia.org/wiki/REST

728x90