본문 바로가기
개발/Web

[Web] Restful API란?

by zuzuu 2022. 2. 21.
반응형

 

API (Application Programming Interface)

소프트웨어가 다른 소프트웨어로부터 지정된 형식으로 명령을 받을 수 있는 수단

  • 정보를 주고 받는 일종의 형식
  • 정보를 요청한는 지정된 형식이 있어야 함

 

Restful API

  • 과거의 SOAP라는 복잡한 형식 대체
  • 가장 중요한 특성은 각 요청이 어떤 동작이나 정보를 위한 것인지 그 요청의 모습 자체로 추론이 가능해야 함

 


 

URL만 봐도 어떤 요청을 하기 위함인지 파악할 수 있어야 함!

- 'https://domain/1, https://domain/hello ' : 무슨 기능인지 명확히 파악하기 어려움 

- https://도메인/classes :  class 목록을 받아오는 요청이라는 것을 파악할 수 있음

{
	"result":[
			{"idx":1, "name":"수학반"},
			{"idx":2, "name":"영어반"},
			{"idx":3, "name":"국어반"},
			{"idx":4, "name":"과학반"},
	]
}

- https://도메인/classes/2 : inx가 2인 class를 받아오는 요청이라는 것을 파악할 수 있음

{"idx":2, "name":"영어반"}

- https://도메인/classes/2/student : 2반에 해당하는 학생들의 정보를 요청하는 것을 파악할 수 있음

{
	"result":[
			{"idx":1, "name":"홍길동1"},
			{"idx":2, "name":"홍길동2"},
			{"idx":3, "name":"홍길동3"},
			{"idx":4, "name":"홍길동4"},
	]
}

이렇게 URI만 봐도 무슨 기능인지 파악할 수 있어야 함(직관적이여야 함)

 

목적에 따라  HTTP method를 구분해서 사용해야함

- CRUD ( CREATE, READ, UPDATE, DELETE)

서버에 Rest API 요청을 보낼 때 HTTP(Hyper Text Transfer Protocol)라는 규약에 따라 전송함.

post, put, patch : body에 정보를 보냄(get, delete보다 많은 정보를 포함할 수 있음)

 

- 요청의 의도를 쉽게 파악할 수 있도록 HTTP Method도 잘 선택해야 함.

GET : 데이터 요청, 조회

POST : 데이터 추가

PUT, PETCH : 데이터 수정 (PUT : 전체 정보 수정, PETCH : 일부 수정)

DELETE : 데이터 삭제

 

형식이기 때문에 기술(언어)에 구애받지는 않지만 약속된 대로, 정석 대로 해야하며, URI는 명사로 하자(동사X)

 

 

728x90
반응형

댓글