네이버 API중 하나인 파파고를 사용해보자.
먼저 NaverDevlelopers에서 임의의 어플 이름과 안드로이드의 앱 패키지 이름으로 등록한다.
# 형식예시: com.example.mynavermap
등록이 완료되면 클라이언트 아이디와 클라이언트 시크릿을 제공한다.
그 밑에는 사용법을 알려준다.
curl "https://openapi.naver.com/v1/papago/n2mt" \ # URL
-H "Content-Type: application/x-www-form-urlencoded; charset=UTF-8" \ # 헤더의 키,벨류
-H "X-Naver-Client-Id: 클라이언트 아이디" \ # 헤더의 키,벨류
-H "X-Naver-Client-Secret: 클라이언트 시크릿" \ # 헤더의 키,벨류
-d "source=ko&target=en&text=만나서 반갑습니다." -v # 바디의 데이터
API 사용량도 보여준다.
Application 메뉴를 통해 내 애플리케이션을 확인할수있다.
외부 API를 사용하기 위해 requests를 설치한다.
pip install requests
파파고 API 매뉴얼: https://developers.naver.com/docs/papago/papago-nmt-api-reference.md
Papago 번역 API 레퍼런스 - Papago API
Papago 번역 API 레퍼런스 인공 신경망 기반 기계 번역 설명 인공 신경망 기반의 기계 번역(NMT, Neural Machine Translation) 결과를 반환합니다. 요청 URL https://openapi.naver.com/v1/papago/n2mt 프로토콜 HTTPS HTTP 메
developers.naver.com
메뉴얼을 따라서 테스트코드를 짜보자.
in:
import requests
from config import Config
URL = "https://openapi.naver.com/v1/papago/n2mt"
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':'만나서 반갑습니다.'}
res = requests.post(URL, data, headers= headers)
print(res.json())
out:
{'message': {'result': {'srcLangType': 'ko', 'tarLangType': 'en', 'translatedText': 'Good to meet you.',
'engineType': 'PRETRANS', 'pivot': None, 'dict': None, 'tarDict': None},
'@type': 'response', '@service': 'naverservice.nmt.proxy', '@version': '1.0.0'}}
# res.json()['message']['result']['translatedText'] 로 번역된 문장만을 가져올수있다.
포스트맨으로도 테스트 할수있다.
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':'en',
'text':text}
res = requests.post(Config.NAVER_PAPAGO_URL, data, headers= headers)
print(type(res.json()))
print(res.json()['message']['result']['translatedText'])
translated = res.json()['message']['result']['translatedText']
return {'result':translated},200
res.request # 내가 보낸 request 객체에 접근가능
res.status_code # 응답코드
res.raise_for_status() # 200 OK 코드가 아닌경우 에러 발동
res.json() # json response일 경우 딕셔너리 타입으로 바로 변환
'백엔드 > API' 카테고리의 다른 글
[API] Open API를 XML 형식으로 불러와서 JSON으로 변환 (API 결과값에 따라 형태가 달라질 때) (0) | 2022.08.25 |
---|---|
[API] 서비스 배포 전 SQL문 Index 작업 (0) | 2022.06.30 |
[API] Rekognition (0) | 2022.06.24 |
[API] S3로 파일 업로드하는 API (0) | 2022.06.24 |
[API] AWS S3 버킷 만들기 (0) | 2022.06.24 |
댓글