Python/Flask

open api 이용하는 방법

mugoori 2023. 1. 13. 15:42
class NaverSearchResource(Resource) :

    def get(self):

        # 클라이언트가 보내는 데이터를 받아온다
        keyword = request.args.get('keyword')
        limit = request.args.get('limit')

        # 네이버 API를 호출
        ### Restful Open API를 호출할때 사용하는 라이브러리 => requests

        data = {'query':keyword,'display':limit}
        headers = {'X-Naver-Client-Id':Config.NAVER_CLIENT_ID,'X-Naver-Client-Secret':Config.NAVER_CLIENT_SECRET}

        response = requests.get('https://openapi.naver.com/v1/search/news.json', data, headers = headers)
        
        response = response.json()

        # response['items']
        title_list = []
        for row in response['items'] :
            title_list.append(row['title'])


        return {'result':'success','items':title_list}, 200

# open api를 이용할떄 쓰는 함수는 requests다 

이것은 클라이언트가 보낸 데이터를 받을때 사용하는 request와는 다른것이다

사용법은 사용하고싶은 open api가 있는곳에서 설명서를 보고한다

이 예제는 네이버의 뉴스검색 api를 활용하였다

파라미터로는 호출 url, data, hearders가 필요하다

 

 

# 호출 url은 여기있다

 

 

 

 

# 메서드를 GET으로 사용하라고 했으므로 .get을 써준다

 

 

 

 

 

# data에는 필수로 들어가는것은 무조건 넣어주고 나머지는 선택해서 넣는다

위 에제에서는 검색어와 결과개수만 넣었다

 

 

 

# 헤더부분은 참고사항과 요청예를 보고 잘 카피해서 넣어주도록한다

 

 

 

 

# 결과를 출력해보면 잘 가져온다 

해당 예시에서는 자동차라는 검색어를 30개까지 제목만 가져오게 하였다