본문 바로가기

PYTHON

REST API란 무엇인가

  • API 응용프로그램 프로그래밍 인터페이스
    (Application Programming Interface)


    API란 응용 프로그램에서 사용할 수 있도록 운영체제나 프로그래밍 언어가 제공하는 자원(기능)을 제어할 수 있게 만든 인터페이스이다. 원래 기본적으로는 응용프로그램을 만들기위한 함수들을 모아둔 곳이라고 설명할 수 있다.

     




    WEB API란? 
    그렇 다면 WEB API는 무엇일까? 쉽게말해서 웹 서비스를 위한 API이다.

    예를 들면, 부동산 정보API는 우리가 아는 서비스인 '직방'이나 '다방'에서 쓰인다. 지도 API는 네이버나 구글에서 좌표나 연관 장소제공 등을 사용하게 위해 쓰인다.

    부동산 정보 ->직방, 다방
    로그인 ->페이스북, 구글, 네이버
    SMSAPI
    게임 데이터 API
    지도 API(네이버, 구글)
    주소 API ->우편번호 검색
    번역 API
    날씨 API

https://www.apistore.co.kr/api/apiList.do

 

API, DB 컨텐츠 판매, 구매, 플랫폼 구축 :: API 스토어

국내외 제공하는 다양한 유료/무료 API들을 찾아내어 소개하며 DB컨텐츠를 직접 수급해 API 형태로 제작하여 제공합니다.

www.apistore.co.kr

 

다음 URL에 들어가보면 WEB API에 쓰이는 많은 서비스들을 볼 수 있다.

 

 

 

 

  • REST API란?
    Rest란 Representation State Transfer라는 뜻으로 우리말로 해석하면 표현적인 상태전달..이라는 뜻인데..  
    원래의 정의는 HTTP URI를 통해 자원을 명시하고, HTTP Method(POST,GET,PUT,DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의마하는 아키텍쳐이며 주로 JSON과 XML을 이용한다.

 

 

실습

데이터 랩

그렇다면 더 확실한 이해를 위해 실습을 통해 공부해보자.

네이버에서 제공하는 서비스중에 DataLab이 있다. 

https://datalab.naver.com/ 

 

네이버 데이터랩

네이버의 검색 트렌드 및 급상승검색어 이력, 쇼핑 카테고리별 검색 트렌드 제공

datalab.naver.com

위의 링크로 들어가보면 각 검색어 별로 알고싶은 기간, 성별등을 옵션으로 주어 사람들이 얼마나 검색했는지 현황을 볼 수 있음을 확인할 수 있다. 요즘에 코로나가 한창 유행이라 검색어를 코로나와 마스크로 정해보았다. 

그리고 범위, 성별, 연령 선택은 하지 않으면 디폴트 값은 전체로 들어간다.

 

 

 

 

 

네이버 개발자 사이트

developers.naver.com/

그렇다면 밑에 보는 바와 같이 네이버에서 직접 제공하는 API중 데이터랩(겁색어 트랜드)를 사용하여 보자.

1. 일단 네이버에 가입해주자.

 

2. 메뉴바 중에 Products로 간다. 그러면 서비스 API가 왼쪽메뉴에 보일 것이다. 그중 데이터랩 메뉴에 오픈 API이용 신청 버튼을 눌러준다.

 

3. 애플리케이션 등록을 해준다. 

  여기서 서비스 환경중 WEB 설정의 웹 서비스 URL은 자신이 지금 어플리케이션을 돌리고 있는 즉, 네이버 API를 사용할 URL을 붙여주면된다. 나는 주피터에서 작업학고 있음으로 아래와 같이 작정하였다.

 

 

4. 애플리케이션 정보 이용

  다음정보는 요청을 보낼 때 사용하는 것이니 사이트를 해당 페이지를 계속 켜준다.

5. https://developers.naver.com/docs/datalab/search/

 

통합 검색어 트렌드 API 적용 가이드

통합 검색어 트렌드 API는 '네이버 데이터랩'의 '검색어 트렌드'를 API로 실행할 수 있게하는 RESTful API입니다.

developers.naver.com

 

- 위에 URL로 들어가서 API사용법을 익히고 요청을 보낸다.

 

- 일단 요청 URL을 알아낸다.

 

 

 

- 요청 방식은 post 방식이다.

 

 

 

 

 

- X-Naver-Client-Id: 에는 아까 자신의 애플리케이션을 만들때 얻어냈던 ClientID를 넣어준다.

  X-Naver-Client-Secret 에는 Client Secret이된다. 이 정보를 헤더에 넣어주어야한다고 써져있다.

 

 

 

 

 

 

-그리고 검색할 파라미터 정보를 넣어서 보내줘야한다. 이것은 아까 데이터 랩에서 입력했던 정보와 똑같음을 알 수 있다. 

 

 

 

 

 * 예시 *

params에 검색할 데이터의 옵션 

startDate :시작날짜

endDate : 마지막 날짜

timeUnit : data(일 단위)

keywordGroup : 검색어 와 검색어 배열

 

- 마지막으로 파라미터를 Json형식으로 전달해야함으로 json으로 바꿔주는 것을 마지막코드에서 볼 수 있다.

 

 

 

* 결과 *

 

 

 

 

결론적으로 HTTP URI를 통해 자원 즉 요청 URL을 통해 자원을 요청하고 , HTTP Method 중 POST를 통해 해당 자원에 대한 정보를 얻어냈다. 이 정보로 CRUD Operation을 적용하면 된다.

또한 JSON으로 요청을 보내고 받았다. 

'PYTHON' 카테고리의 다른 글

웹 크롤링이란?  (0) 2020.07.30