REST API란?
- 웹 애플리케이션에서는 HTTP 메서드를 이용해 서버와 통신합니다. GET을 통해 웹 페이지나 데이터를 요청하고, POST로 새로운 글이나 데이터를 전송하거나 DELETE로 저장된 글이나 데이터를 삭제할 수 있습니다.
- REST(Representational State Transfer) API는 웹에서 사용되는 데이터나 자원(Resource)을 HTTP URI로 표현하고, HTTP 프로토콜을 통해 요청과 응답을 정의하는 방식이다
- 쉽게말해 메소드와 uri를 통해 crud요청을하는거
좋은 REST API를 디자인하는 방법
1. HTTP 프로토콜을 사용하기
2. 적절한 엔드포인트사용
- 모든 자원은 개별 리소스에 맞는 엔드포인트(Endpoint)를 사용해야 한다는 것과, 요청하고 받은 자원에 대한 정보를 응답으로 전달해야 한다
- 엔드포인트 작성 시에는 동사, HTTP 메서드, 혹은 어떤 행위에 대한 단어 사용은 지양하고, 리소스에 집중해 명사 형태의 단어로 작성하는 것이 바람직 방법입니다.
- 요청에 따른 응답으로 리소스를 전달할 때에도 사용한 리소스에 대한 정보와 함께 리소스 사용에 대한 성공/실패 여부를 반환해야 합니다.
3.CRUD에 맞게 적절한 HTTP 메서드를 사용
GET
:서버의 데이터를 변화시키지 않는 요청에 사용해야 합니다.(요청에 바디없음)POST
:요청마다 새로운 리소스를 생성 (요청에 바디가있음)PUT
:요청마다 같은 리소스를 반환합니다. 이렇게 매 요청마다 같은 리소스를 반환하는 특징을 멱등(idempotent)하다고 합니다. 그렇기 때문에 멱등성을 가지는 메서드 PUT과 그렇지 않은 POST는 구분하여 사용해야 합니다.- PUT 과 PATCH 도 구분하여 사용해야 합니다. PUT은 교체, PATCH는 수정의 용도로 사용합니다.
delete
: 내용은 엔드포인트로 하는게 더 낫다(물론 바디사용가능)
좀더 공부할 레퍼런스
- 5가지의 기본적인 REST API 디자인 가이드
- 엔드포인트/Query Paramete
open API
공공데이터에 쉽게 접근할 수 있도록 정부는 OPEN API의 형태로 공고데이터를 제공하고있다
- 공공데이터 포털
API key
- API를 이용하기 위해서는 API Key가 필요합니다.(가끔 API key가 필요하지 않은 경우도 있습니다.)
- 클라이언트의 요청에 따라 서버에서 응답한다는 말은 결국 서버를 운용하는 데에 비용이 발생하고, 따라서 서버 입장에서 아무런 조건 없이 익명의 클라이언트에게 데이터를 제공할 의무도, 이유도 없습니다.
- 로그인된 이용자에게만 자원에 접근할 수 있는 권한을 API Key의 형태로 제공하고, 데이터를 요청할 때 API key를 같이 전달해야만 원하는 응답을 받을 수 있습니다
-웹 개발에서 사용하는 대표적인 클라이언트(요청의주체)는 브라우저입니다
- 브라우저는 서버에 HTTP 요청을 보낼 수 있는 훌륭한 도구이지만, 주로 웹 페이지를 받아오는 GET 요청에 사용합니다
- GET이 아닌 다른 요청을 보내려면, 개발자 도구의 콘솔 창에서 내장 함수 fetch를 사용해야 합니다.
- 태스트 요청을 보낼때 매번 코드를 작성하는 것 대신에, HTTP 요청을 테스트할 수 있는 다양한 도구중 postman을사용해보길 권장