파파고 API - 기초 설정, 사용 방법, RESTful API에서 사용하기

반응형

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

pip install requests

Visual Studio Code

  • 사용 언어 : Python

 

라이브러리 호출

import requests

 

소스 코드

  • 설정 - URL, API키
# ref폴더의 Config.py파일, 보안을 위해 API키 저장
from ref.config import Config

# 해당 URL로 번역 요청
URL = "https://openapi.naver.com/v1/papago/n2mt"

# 헤더 설정, 부여받은 파파고 API키, 시크릿키 입력
# 보안을 위해 Config 파일에 따로 정의하여 사용
headers = {
    "Content-Type" : "application/x-www-form-urlencoded; charset=UTF-8",
    "X-Naver-Client-Id" : Config.client_id,
    "X-Naver-Client-Secret" : Config.client_secret,
}

 

  • 번역하기 - 번역 할 데이터와 언어 설정 후 네이버 API의 정보 전송
# 번역 할 데이터 설정
# source=원본언어, target=목적언어, text=번역할텍스트(최대 5000자)
data = {
    "source" : "ko",
    "target" : "en",
    "text" : "만나서 반갑습니다."
}

# URL, 데이터, API키가 담긴 헤더 정보 네이버 API 측으로 전송
res = requests.post(URL, data=data, headers=headers)

 

확인

  • translatedText 키의 밸류 확인 : Good to meet you.
print(res.json()['message']['result']['translatedText'])
>>> Good to meet you.

API 서버로 파파고 사용해보기

Visual Studio Code

  • 메인 파일 : app.py
from flask import Flask
from flask_jwt_extended import JWTManager
from flask_restful import Api
from ref.config import Config
from resources.papago import PapagoResource

# API 서버를 구축하기 위한 기본 구조
app = Flask(__name__)

# 환경변수 셋팅
app.config.from_object(Config) # 만들었던 Config.py의 Config 클래스 호출

# restfulAPI 생성
api = Api(app)

# 경로와 리소스(api코드) 연결
api.add_resource(PapagoResource, '/papago')

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

 

  • 추가 리소스 파일 : resources/papago.py
# OpenAPI 이용하려면 requests 라이브러리 이용
import requests

from flask import request
from flask_restful import Resource
from ref.config import Config

class PapagoResource(Resource):
    def get(self) :
        # 헤더 설정, 부여받은 파파고 API키 입력
        headers = {
            "Content-Type" : "application/x-www-form-urlencoded; charset=UTF-8",
            "X-Naver-Client-Id" : Config.client_id,
            "X-Naver-Client-Secret" : Config.client_secret,
        }

        # 파라미터로 번역 할 텍스트 받기
        text = request.args['text']

        # source=원본언어, target=목적언어, text=번역할텍스트(최대 5000자)
        data = {
            "source" : "ko",
            "target" : "en",
            "text" : text
        }

        # 데이터를 보낼 URL, 데이터, API키가 담긴 헤더 정보
        res = requests.post(Config.URL, data=data, headers=headers)
        res = res.json()
        res['message']['result']['srcLangType']
        print(res)

        return {
            "원본언어" : res['message']['result']['srcLangType'],
            "원문" : text,
            "번역언어" : res['message']['result']['tarLangType'],
            "번역" : res['message']['result']['translatedText']
        }, 200

POSTMAN - 파파고 API 번역 테스트

  • 한국어에서 영어로 번역해보기

 

  • 결과 화면

반응형