article thumbnail image
Published 2022. 3. 31. 22:33

1.REST API 란?
웹 애플리케이션에서는 HTTP 메소드를 이용해 서버와 통신합니다. GET을 통해 웹 페이지나 데이터를 요청하고, POST로 새로운 글이나 데이터를 전송하거나 DELETE로 저장된 글이나 데이터를 삭제할 수 있습니다. 이처럼 클라이언트와 서버가 HTTP 통신을 할 때는 어떤 요청을 보내고 받느냐에 따라 메소드의 사용이 달라집니다.

 

REST API는 웹에서 사용되는 데이터나 자원(Resource)을 HTTP URI로 표현하고, HTTP 프로토콜을 통해 요청과 응답을 정의하는 방식을 말합니다

 

웹에서 사용되는 데이터나 자원을 링크로 표현!

 

프로토콜을 통해 요청과 응답한다!

 

하지만 나같은 무말랭이는 이런글을 보았을때 절반밖에 이해못했다 그래서 실전으로 바로 검색해보면 흔히들 볼 수 있는 사례를 보여주겠다

웹 개발자들이 일일히 로그인화면창을 만들고 있을껀가? api를 이용해 간단히 회원가입과 로그인링크를 주어 간단하게 해결가능!

이밖에말고도 지도, 날씨, 검색창 등등의 api를 활용해 나만의 웹사이트에 적용시킬 수있다.

2.그렇다면 잘만든 REST API란 무엇인가?

 

클라이언트와 서버가 어떤요청을 보내느냐에 따라 메소드(GET,POST,PUSH,DELETE..etc)를 적절하게 사용해 다른 참여자가 API를 봐도 이 코드가 어떻게 요청하고 응답하는것인지 쉽게 알아 볼 수있도록 작성하는거라고 생각하면됀다.

 

우리는 POST의 메소드만을 이용해 API를 작성할 수 도 있지만 과연 다른사용자가봐도 어떻게 작동하는지 바로 알 수 있을까? 아니다 그건 나만아는 비밀창고같은것이지 상호피드백이 가능한 API가 아니다 그렇기 떄문에우리는 여러 메소드를 통해 사용자가 잘 알아 볼 수 있도록 적용해야하는것이다.

 

예를 들어


/createMovie
/seeMovies
/getMovie/inception
/deleteMovie/inception
/updateMovie/inception
/getTopRateMovies
/findMoviesFromThisYear
이렇게 작성하는건 절대로 올바른게 아니다 표준이있어야 한다.
verbURL에 있으면안됀다
/Movie
/Movie/inception
/Movie/inception
/TopRateMovies
/MoviesFromThisYear
명사(/Movie)고유 식별자(/inception)만이 남긴다
여기에 메소드를 활용한다
inception이라는 영화를 불러오고싶다면
GET/Movie/inception
해당 영화 정보를 편집하거나 삭제하고 싶다면
PUT/movies/inception
DELETE / movies/inception
URL을 변경할 필요없이!
해당 영화의 배우들을 불러오고싶다면
GET /movies/inception/actors
마찬가지로 지우고싶다면
GET, DELETE 메소드를 앞에 사용하면됀다

/getTopRateMovies
/findMoviesFromThisYear
영화의 검색이나 필터를 처리하기 위해서 마찬가지로 앞에 verb를 사용할 필요없다
query parameters를 활용하면 됨!
/movies?min_ration=9.8
/movies?release_date=2021
매번 검색할때마다 새로운 url을 사용하는것마다 훨씬 효과적이다
원한다면 . 특정한 검색 URL을 만들 수도 있다
또한 query parameters를활용하면
/moives?page=5
이렇게 API에 쪽수 매기기(pagintion)을 추가할 수있다!
이렇게 이해하기 쉽고 ,활용도 높은 REST API를 만들 수 있다면 유저들도 팀원들도 빠르게 사용할수 있을것이다.


 

복사했습니다!