Rest API

Naver Open API - 뉴스 검색 API , 파파고 번역 API 사용하기

왕현성 2023. 1. 13. 16:37
728x90

파파고 API를 사용하기 위한 라이브러리 설치

pip install requests

 

 

 

app.py

from flask import Flask
from flask_restful import Api
from flask_jwt_extended import JWTManager
from config import Config
from resources.naver import NaverPapagoResource, NaverSearchResource



app = Flask(__name__)

jwt = JWTManager(app)

api = Api(app)
# 경로를 리소스와 연결한다.


api.add_resource(NaverSearchResource,'/news')
api.add_resource(NaverPapagoResource,'/chinese')

if __name__ == '__main__' : 
    app.run()

naver.py 

필요 라이브러리 import

from flask import request
from flask_restful import Resource
from flask_jwt_extended import create_access_token,jwt_required,get_jwt
from flask_jwt_extended import create_access_token,jwt_required,get_jwt
from mysql.connector import Error
from mysql_connection import get_connection
from datetime import datetime
import boto3
from config import Config
import requests

 

네이버 뉴스 검색 API 코드 (get)

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()

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

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

네이버 파파고 번역 API (post)

class NaverPapagoResource(Resource) :

    def post(self) :
        # {"content":"안녕하세요~"}
        data = request.get_json()
        headers = {'X-Naver-Client-Id':Config.NAVER_CLIENT_ID,'X-Naver-Client-Secret':Config.NAVER_CLIENT_SECRET,
        'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8'}

        # 네이버 파파고 api 호출
        req_data = {'source':'ko','target':'zh-CN','text': data['content']}

        response=requests.post('https://openapi.naver.com/v1/papago/n2mt',req_data,headers=headers)

        response=response.json()

        result_text = response['message']['result']['translatedText']

        return {'result':'success','result_text':result_text}

 

 

Json 구조 파악 :https://jsoneditoronline.org/

 

JSON Editor Online: JSON editor, JSON formatter, query JSON

You need to enable JavaScript to run this app. JSON Editor Online JSON Editor Online is a web-based tool to view, edit, format, repair, compare, query, transform, validate, and share your JSON data. About JSON Editor Online JSON Editor Online is a versatil

jsoneditoronline.org

네이버 검색 API  : https://developers.naver.com/docs/serviceapi/search/news/news.md#%EB%89%B4%EC%8A%A4

 

검색 > 뉴스 - Search API

검색 > 뉴스 뉴스 검색 개요 개요 검색 API와 뉴스 검색 개요 검색 API는 네이버 검색 결과를 뉴스, 백과사전, 블로그, 쇼핑, 영화, 웹 문서, 전문정보, 지식iN, 책, 카페글 등 분야별로 볼 수 있는 API

developers.naver.com

네이버 파파고 번역 API : https://developers.naver.com/docs/papago/papago-nmt-overview.md

 

Papago 번역 - Papago API

Papago 번역 개요 Papago 번역 개요 Papago 번역은 Papago의 인공 신경망 기반 기계 번역 기술(NMT, Neural Machine Translation)로 텍스트를 번역한 결과를 반환하는 RESTful API입니다. Papago 번역으로 번역할 수 있

developers.naver.com