5분만에 제대로 설계하는 ⭐️ REST API (노마드코더)
노마드코더
https://www.youtube.com/watch?v=4DxHX95Lq2U
💡 API란 ? (위시켓)
API란? 비개발자가 알기 쉽게 설명해드립니다! - wishket
여러분은 API가 무엇인지 알고 계신가요? 자주 듣지만 그 개념이 무엇인지 정확하게 알기 쉽지 않은데요. 이번 시간 위시켓이 API란 무엇인지 알기 쉽게 설명해드리고자 합니다.
blog.wishket.com
우선 API란 API는 Application Programming Interface(애플리케이션 프로그램 인터페이스)의 줄임말이다.
쉽게 말해, API는 프로그램들이 서로 상호작용하는 것을 도와주는 매개체로 볼 수 있다.
API의 역할은?
1. API는 서버와 데이터베이스에 대한 출입구 역할을 한다.
: 데이터베이스에는 소중한 정보들이 저장되는데요. 모든 사람들이 이 데이터베이스에 접근할 수 있으면 안 되겠지요. API는 이를 방지하기 위해 여러분이 가진 서버와 데이터베이스에 대한 출입구 역할을 하며, 허용된 사람들에게만 접근성을 부여해줍니다.
2. API는 애플리케이션과 기기가 원활하게 통신할 수 있도록 한다.
: 여기서 애플리케이션이란 우리가 흔히 알고 있는 스마트폰 어플이나 프로그램을 말합니다. API는 애플리케이션과 기기가 데이터를 원활히 주고받을 수 있도록 돕는 역할을 합니다.
3. API는 모든 접속을 표준화한다.
API는 모든 접속을 표준화하기 때문에 기계/ 운영체제 등과 상관없이 누구나 동일한 액세스를 얻을 수 있습니다. 쉽게 말해, API는 범용 플러그처럼 작동한다고 볼 수 있습니다.
💡 CRUD란 ?
CRUD는 영화 사이트를 예를 들어서,
유저가 영화를 추가하고 리스트나 정보를 읽고
업데이트하며 삭제하는 일련의 과정을 일컫는다.
위에서 배웠던 대로 해석해보면, CRUD의 API는 어떠한 형태일지 생각해보자.
API는 모든 접속을 표준화 한다고 했다.
그렇다면 웹에서 요청을 보내는 형태는 이러한 형태가 될 것이다.
하지만 이것은 좋은 설계형태가 아니다.
일관적이지도 않고 다른 개발자나 유저가 쉽게 알기에 어려울 것이기 때문이다.
따라서 CRUD의 API를 정의하기 위한 표준이 필요하다.
그게 무엇인지 알아보자.
첫째. 동사를 사용하지 않는다.
둘째, HTTP methods를 사용하자. (GET, POST, PUT, DELETE)
앞서 두 가지의 방법을 모두 결합하여 사용하면 어떻게 될까 ?
* GET 요청 + /seeMovies = GET/movies
* POST 요청 + /CreateMovies = POST/movies
전체 모든 영화를 삭제하거나 업데이트 하는 경우는 없으므로 DELETE와 UPDATE 요청은 하지 않는다.
대신, HTTP METHODS + /movies/컨텐츠를 통해서
DELETE /movies/inception 을 통해 2개의 URL만 가지고 API를 만들 수 있다.
이것을 응용해서 인셉션이라는 영화의 배우 목록을 검색(GET 요청) 해보자.
간단히 methods와 명사의 형태를 통해서 직관적이고 효율적인 API를 구성할 수 있게 되었다.
응용. query parameters
검색 기능을 사용할 때에도 url에 query parameters를 통해서
매번 해당 url을 새롭게 만들지 않고 요청하는 정보를 url에 담을 수가 있다.
이것을 응용하면 페이지네이션도 가능하다.