참조:https://velog.io/@taeha7b/api-restapi-restfulapi
[API, REST API, RESTful API 개념정리
API, REST API, RESTful API 말은 많이 들었는데 무엇인지 모르는 분들, 추상적으로 ‘이거겠지’ 하고 이해하는 정도(제가 여기 포함입니다?)에서 멈춘분들을 위해서 작성했습니다
velog.io](https://velog.io/@taeha7b/api-restapi-restfulapi)
API(Application Programming Interface)
제가 자취방에서 남동생이랑 같이 살고 있는데,요즘 날씨가 너무 더워서 외출하고 자취방에 들어오면 에어컨을 틀고 찬물로 샤워하러 가는것이 귀가 후에 제가 가장 먼저 하는 일입니다.
그런데 이때 에어컨을 가동하기 위해서 리모컨을 이용해서 에어컨을 구동시키는데 만약에 에어컨한테 말로
‘에어컨아 너무 더우니까 온도 18도로 맞춰줄래?’ 하면 사람인 동생도 형 말을 안듣는데.기계인 에어컨은 사람의 음성에 당연히 작동을 안하겠죠
여기서 제가 에어컨을 가동하기 위해서는 다음과 같은 과정이 필요했습니다.
사람인 제가 에어컨을 켜기 위해서 리모컨의 버튼을 눌러 에어컨을 켜고
또 버튼을 눌러서 온도를 18도로 맞췄습니다.간단하게 나타내면 다음과 같습니다.
- 나-리모컨-에어컨
이번엔 동생이랑 같이 외출해서 분식집을 갔다고 가정하겠습니다.
분식집을 가서 점원에게 떡볶이 2인분을 주문했다고 하면, 10분?정도 지나면 주방에서 떡볶이 2인분이 나오고
점원이 떡볶이를 가져다 줍니다.
여기서도 저는 주방의 요리사분께 주문을 하지 않았습니다.
점원분께 요리 주문을 한거죠.
- 손님-점원-요리사
위키백과
API는 응용프로그램(애플리케이션)에서 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다.주로 파일 제어,창 제어,화상 처리,문자 제어 등을 위한 인터페이스를 제공한다.
즉,API는 리모컨과 점원처럼 애플리케이션과 운영 제체 그리고 애플리케이션과 프로그래밍 언어가 제공하는 기능 사이의 상호 작용을 도와준다.
웹 API
웹은 기본적으로 요청(request)과 응답(response)으로 작동한다.

클라이언트쪽에서 요청을 하면 서버에서 응답을 하는것이다.
웹 API는 웹 애플리케이션 개발을 할때 클라이언트와 서버,애플리케이션과 애플리케이션등 서로 요청과 응답을 주고 받기 위해서 정의한 API이다.
예를 들어 블로그에 글을 써서 올린다고 하면 글을 쓰고,출간하기,저장하기와 간은 버튼을 클릭해야 한다.
이 버튼을 누르면 연결된 API에 따라 서버에 글이 저장될 것이다.
만약 구글 지도 API를 사용하면 구글 지도 웹사이트에 접속하지 않아도 구글 지도를 사용할 수 있다.
웹 API의 역할
-서버와 데이터베이스만의 리소스에 접근할 수 있게 해준다.
데이터베이스의 정보를 누구나 열람하면 곤란할 것이다.필요에 의해서만 열람되어야 할것이다.
API는 접근 권한이 인가된 사람에게만 서버와 데이터베이스에 접근할 수 있게 한다.
-모든 요청과 응답 표준화한다.
애플의 아이폰을 쓰던 삼성의 갤럭시폰을 쓰던 상관없이 동일한 API를 사용하기 때문에 클라이언트의 요청과 서버의 응답을 하나의 API로 표준화 한다.
REST API
REST API(REpresentational State Transfer)는 웹상에서 사용되는 여러 리소스를 HTTP URI로 표현하고,해당 리소스에 대한 행위를 HTTP Method로 정의하는 방식을 말한다.
쉽게 말해서
리소스(HTTP URI로 정의됨)를 어떻게 하겠다(HTTP Method + Payload)를 구조적으로 깔끔하게 표현하는 방법이다.
REST API의 설계 가이드
- 리소스에 대한 행위는 HTTP Method(POST,GET,PUT,DELETE)로 표현해야 한다.
- /(슬래시)는 계층 관계를 나타낼때 사용한다.
- URI 마지막 문자에 /(슬래시)를 사용하지 않는다.
- URI에_(언더바)는 사용하지 않도록 한다.또한 영어 대문자보다는 소문자를 지향한다.
- 그리고 가독성을 위해서 긴 단어는 잘 사용하지 않는다.
- URI에 동사는 GET,POST와 같은 HTTP Method를 표현하기 때문이다.동사가 아니라 명사를 사용한다.
- URI에 파일의 확장자(예를 들어 .json, .jpg)를 포함시키지 않는다.
RESTful API 란?
RESTful API는 REST API 설계 가이드를 따라 API를 만드는 것이다.
REST API 설계 가이드에 따라 API를 만들어서 웹 서비스를 제공하면 해당 웹서비스는 RESTful하다고 한다.
RESTful 하면 좋은점
RESTful 하다는 것은 REST API 설계 가이드를 준수한다는 것인데 RESTful하면 좋은점
self-descriptiveness
RESTful APi는 그 자체만으로도 API의 목적이 무엇인지를 쉽게 알 수 있다.
따라서
API를 RESTful 하게 만들어서 API의 목적이 무엇인지 명확하게 하기 위해 RESTful 함을 지향한다.