먹었으면 뇌를 쓰자
(수정필)REST API 본문
영화 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
'유튜브로 공부하기' 카테고리의 다른 글
(수정필)마크다운(Markdown)으로 깃허브 README를 작성해보자. (0) | 2022.12.25 |
---|