본문 바로가기

BackEnd

API - NAVER PAPAGO Open API 사용하기

반응형
NAVER PAPAGO Open API를 이용해 번역 API만들기

 

 

 

 

 

 

NAVER DEVELOPERS URL

 

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

 

 

 

NAVER의 번역 서비스인 PAPAGO의 Open API를 이용해 번역API를 만들어보자.

 

 

1. PAPAGO 번역 API를 사용하기위해 네이버 개발자 센터에서 애플리케이션을 등록(API 이용신청)한다.

 

 

2. 다른 API를 이용하려면 requests 라이브러리를 이용하면 된다.

 

 

3. 위의 PAPAGO API 링크를 참고하여 app.py 파일에 클래스를 연결해본다.

 

 

app.py

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


app = Flask(__name__)

# 환경변수 셋팅
app.config.from_object(Config)

# JWT Token Library 만들기
jwt = JWTManager(app)

api = Api(app)

api.add_resource(NaverPapagoResource, '/chinese')
api.add_resource(NaverPapagoEnResource, '/en')
api.add_resource(NaverSearchResource, '/search')


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

 

 

클래스가 포함된 naver.py

 

 

get으로 호출하는 방법과 post로 호출하는 두가지 방법을 사용해보자.

 

from datetime import datetime
from http import HTTPStatus
from flask import request
from flask_jwt_extended import get_jwt_identity, jwt_required
from flask_restful import Resource
from config import Config
import requests

class NaverPapagoResource(Resource) :
    def get(self) :
        # 클라이언트로부터 데이터를 받아온다.
        text = request.args['text']

        # 네이버 파파고 API를 호출한다.
        headers = { 'Content-Type' : 'application/x-www-form-urlencoded; charset=UTF-8',
                    'X-Naver-Client-Id' : Config.NAVER_CLIENT_ID,
                    'X-Naver-Client-Secret' : Config.NAVER_CLIENT_SECRET }

        data = { 'source' : 'ko', 'target' : 'zh-CN', 'text' : text }

        res = requests.post( Config.NAVER_PAPAGO_URL, data, headers = headers )

        print(res.json())

        res = res.json()

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

        return {'result' : result_text }, 200



class NaverPapagoEnResource(Resource) :
    def post(self) :
        text = request.get_json()

        # 네이버 파파고 API를 호출한다.
        headers = { 'Content-Type' : 'application/x-www-form-urlencoded; charset=UTF-8',
                    'X-Naver-Client-Id' : Config.NAVER_CLIENT_ID,
                    'X-Naver-Client-Secret' : Config.NAVER_CLIENT_SECRET }

        data = { 'source' : 'ko', 'target' : 'en', 'text' : text.values() }

        res = requests.post( Config.NAVER_PAPAGO_URL, data, headers = headers )

        print(res.json())

        res = res.json()

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

        return {'result' : result_text }, 200

 

 

 

4. postman으로 test

 

get

 

 

post

 

 

반응형