먹었으면 뇌를 쓰자

(수정필)REST API 본문

유튜브로 공부하기

(수정필)REST API

뇌이비 2022. 12. 26. 20:42

영화 API

API는 기본적인 CRUD를 위해 활용

유저들이 영화를 추가하고

영화를 검색하고

영화에 나온 배우 정보, 소개글을 읽고 

자료를 삭제할 수 있고

 

API가 필요한 모든 URL을 만들고 싶을거야

그렇게 작업하면

 

/createMovie

/seeMovies

/getMovie/inception

/deleteMovie/inception

/updateMovie/inception

/getTopRatedMovies

/findMoviesFromThisYear

 

이러한 설계는 좋지 않다. 이해하기 어렵다. 명확한 패턴이 없음.

 

 

add.create.delete...남발 ->표준 x

 

url에서는 no verb -> add.edit.delete 단어 삭제

only 명사만

 

컬렉션(전체, 여러 데이터resource를 식별하는 것) 

movies 복수 사용

inception 영화 제목 사용 (db에서 고유 식별자, unique identifier가 됨)

 

결과적으로 두개의 url이 나옴

/movies

/movies/inception

 

이를 위해 http methods(get,post,put,delete)를 활용해 인터랙션 

 

nouns+http methods = ?

get으로 /movies ? = 모든 영화 리스트 불러오기

post로 /movies ? = 영화 생성

즉, 같은 url에서 2가지 메소드 

 

delete,update는 안함-전체 영화를 삭제하거나 업데이트는 x

대신 컬렉션의 이름을 사용 

/movies/inception(고유 식별자)

 

get으로 /movies/inception ? = 인셉션 불러오기

post, put, delete 사용

 

객체들의 관계 인터랙션을 위해 url을 사용할 수도 있음.

예를 들어 영화 인셉션의 배우를 보고 싶으면

get으로 /movies/inception/actors 

배우 삭제, 수정, 추가 등등도 가능...

 

영화의 검색이나 필터를 처리하기 위해

/getTopRatedMovies

/findMoviesFromThisYear

이런 url 쓸 필요 없다.

 

대신 쿼리 파라미터 쓰면 된다. 

/movies?min_rating=9.8

/movies?release_date=2021 

 

특정한 검색 url을 만들 수도 있다.

 

api에 페이지네이션을 추가할 수도 있다. 

/movies?page=5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Comments