https://developers.naver.com/apps/#/register
애플리케이션 - NAVER Developers
developers.naver.com
링크에 들어가서 로그인 후
애플리케이션 이름과 사용할 API, 비로그인 오픈 API 서비스 환경을 알맞게 지정하고
API 이용 신청
Client ID, Client Secret 키를 받는다.
뉴스 검색 API 를 사용해보자!
포스트맨에서 테스트
헤더 부분에 X-naver-Client-Id 와 X-Naver-Client-Secret 을 넣고 테스트
해당 API 페이지에 들어가 HTTP 메서드 확인하여 포스트맨에 경로 세팅
Visual Studio Code에 들어가 작업
app.py 경로 설정
import serverless_wsgi
from flask import Flask
from flask_restful import Api
from resources.news import NewsSearchResource
app = Flask(__name__)
api = Api(app)
api.add_resource(NewsSearchResource,'/news/search')
def handler(event, context):
return serverless_wsgi.handle_request(app, event, context)
if __name__ == '__main__':
app.run()
네이버의 API 를 호출하기 위해서
파이썬 코드로 GET, POST, PUT, DELETE api 를 처리해주는
requests 를 사용
헤더에 인증키는 config.py 에 변수 처리
필요 없는 데이터들인
뉴스가 업로드 된 날짜,시간 등은 버리고
리스폰스의 'item'부분만을 가져온다.
from flask import request
from flask_restful import Resource
import requests
from config import Config
class NewsSearchResource(Resource):
def get(self):
if 'query' not in request.args:
return {"result":"fail",
"error":"검색어는 필수입니다."}, 400
keyword = request.args['query']
# 네이버의 API 호출한다.
# 파이썬 코드로 GET, POST, PUT, DELETE API 를 처리해주는 라이브러리 => requests
url = 'https://openapi.naver.com/v1/search/news.json'
params = {'query':keyword,
'display':30,
'sort':'date'}
headers = {'X-Naver-Client-Id' : Config.X_NAVER_CLIENT_ID,
'X-Naver-Client-Secret' : Config.X_NAVER_CLIENT_SECRET}
response = requests.get(url,
params=params,
headers=headers)
# 응답으로부터 데이터를 JSON 으로 받는다.
response = response.json()
return {"result":"success",
"items":response['items'],
"count":len(response['items'])}
포스트맨에서 테스트
count 까지 정상적으로 나온다.
끝~
'Restful API' 카테고리의 다른 글
[Restful API] S3에 저장한 이미지 객체 탐지하는 API(Rekognition) (0) | 2024.05.28 |
---|---|
[Restful API] 이미지 S3에 업로드하는 API 만들기, boto3 (0) | 2024.05.28 |
[Restful API] 영화 추천 API 만들기 (0) | 2024.05.27 |
[Restful API] 로그아웃 시키는 방법 (0) | 2024.05.22 |
[Restful API] 토큰 유효기간 만료 시키기 (0) | 2024.05.22 |