Back End/Flask
파파고 API - 기초 설정, 사용 방법, RESTful API에서 사용하기
luvris2
2022. 6. 27. 17:21
반응형
파파고 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 번역 테스트
- 한국어에서 영어로 번역해보기
- 결과 화면
반응형