์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- ์๋ฐ์ด๋ณด
- Flutter
- ํ์ด์ฌ
- ์๋๋ก์ด๋ ์ฑ ๊ฐ๋ฐ
- ์๋ฐ
- ์๋ฐ๊ธฐ์ด
- REACT
- ํ๋ค์ค๊ณต๋ถ
- ์๋ฐ๊ณต๋ถ
- Pandas
- ์๋ฐํ๋ก๊ทธ๋๋ฐ
- Streamlit๊ธฐ์ด
- java
- ํ์ด์ฌ๊ณต๋ถ
- JavaScript
- ์๋ฐ์คํฌ๋ฆฝํธ ๊ณต๋ถ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ํ๋ค์ค
- ์น๋์๋ณด๋ ๊ธฐ์ด
- serverless
- MySQL
- ์๋ฐ์คํฌ๋ฆฝํธ
- db
- ์คํธ๋ฆผ๋ฆฟ
- ์๋๋ก์ด๋ ์คํ๋์ค
- ์น๋์๋ณด๋ ์ ์
- streamlit
- ์คํธ๋ฆผ๋ฆฟ ๊ธฐ๋ณธ
- Android
- RESTful API
- Today
- Total
ruriruriya
[Open API] Naver - ๋ค์ด๋ฒ ํํ๊ณ ๋ฒ์ญ API ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ(Feat. RestFul Flask) ๋ณธ๋ฌธ
[Open API] Naver - ๋ค์ด๋ฒ ํํ๊ณ ๋ฒ์ญ API ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ(Feat. RestFul Flask)
๋ฃจ๋ฆฌ์ผใ 2024. 2. 15. 10:00๋ค์ด๋ฒ ๊ฐ๋ฐ API ์ด์ฉ์ ์ฒญ์ ํด์ ํด๋ผ์ด์ธํธ ID์ ์ํฌ๋ฆฟ ํค๋ฅผ ๋ฐ์๋ค.
์ด์ ๋ฒ์ญ๊ธฐ๋ฅผ ์ฌ์ฉํด๋ณด์.
์๋๋ ์ด์ฉ์ ์ฒญํ๋ ๋ฐฉ๋ฒ์ด๋ค.
https://ruriruriya.tistory.com/191
[Open API] Naver - ๋ค์ด๋ฒ ๊ฐ๋ฐ์์ผํฐ API ์ด์ฉ์ ์ฒญ ๋ฐ ์ดํ๋ฆฌ์ผ์ด์ ๋ฑ๋ก๋ฐฉ๋ฒ
๋ค์ด๋ฒ API๋ฅผ ์ด์ฉํ๊ธฐ ์ํด์๋ ๋ค์ด๋ฒ ์์ด๋๊ฐ ์์ด์ผ ํ๊ณ API ์ด์ฉ์ ์ฒญ์ ํ๊ณ API ํค๋ฅผ ๋ฐ๊ธ ๋ฐ์ ์ฌ์ฉํด์ผ ํ๋ค. ๋ค์ด๋ฒ API ์ด์ฉ์ ์ฒญ๊ณผ ์ดํ๋ฆฌ์ผ์ด์ ๋ฑ๋ก์ ํด๋ณด์. 1. ๋ค์ด๋ฒ ๊ฐ๋ฐ์ ์ผํฐ
ruriruriya.tistory.com
1. RestFul API (Flask)
ํ์ด์ฌ์ผ๋ก ์ค์ ์ ํด๋ณด์.
- app.py
#flask ํ๋ ์์ํฌ๋ฅผ ์ด์ฉํ, Restful API ์๋ฒ ๊ฐ๋ฐ
from flask import Flask
from flask_jwt_extended import JWTManager
from flask_restful import Api
from config import Config
from resources.naver import ChineseResource, NewsResource
# ๊ธฐ๋ณธ ๊ตฌ์กฐ
app = Flask(__name__)
# ํ๊ฒฝ๋ณ์ ์ธํ
app.config.from_object(Config)
api = Api(app)
api.add_resource(ChineseResource,'/chinese')
if __name__=='__main__':
app.run()
- resources ํจํค์ง > naver.py
class ChineseResource(Resource) :
def post(self) :
data = request.get_json()
# ํด๋ผ์ด์ธํธ๊ฐ ์
๋ ฅํ body์ json ๊ฐ์ ธ์ค๊ธฐ
# ๋ค์ด๋ฒ์ ํํ๊ณ API๋ฅผ ํธ์ถํ์ฌ
# ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ ธ์จ๋ค.
# ํํ๊ณ API์ ๋ฌธ์๋ฅผ ๋ณด๊ณ ,
# ์ด๋ค ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด์ผ ํ๋์ง ํ์
ํ์ฌ
# requests์ get, post, put, delete ๋ฑ์
# ํจ์๋ฅผ ์ด์ฉํ์ฌ ํธ์ถํ๋ฉด ๋๋ค.
req_data = {
"source":"ko",
"target":"zh-CN",
"text":data['sentence']
}
req_header ={
"X-Naver-Client-Id":"7V89Lh5rHWswlUoe6D6B",
"X-Naver-Client-Secret":"9l22vo6_9b"
}
response = requests.post('https://openapi.naver.com/v1/papago/n2mt',
req_data,
headers=req_header)
# ๋ค์ s ๋ถ์ ๊ฒ์ผ๋ก ์์ request๋ flask ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
# ๋ฐ์ดํฐ๋ฅผ ํํ๊ณ ์๋ฒ๋ก ๋ถํฐ ๋ฐ์์์ผ๋,
# ์ฐ๋ฆฌ๊ฐ ํ์ํ ๋ฐ์ดํฐ๋ง ๋ฝ์๋ด๋ฉด ๋๋ค.
print(response)
# ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฝ๊ธฐ ์ํด์๋
# ๋ฐ์์จ ๋ฐ์ดํฐ๋ฅผ ๋ค์ json์ผ๋ก ์ ์ฅ โ
โ
โ
โ
โ
response = response.json()
print()
print(response)
chinese = response['message']['result']['translatedText']
return {"result" : "success",
"chinese": chinese}, 200
2. ํฌ์คํธ๋งจ์ผ๋ก ์์ฒญ
ํฌ์คํธ๋งจ์ ์ฌ์ฉํด์ ํ๊ตญ์ด๋ฅผ ์ ์กํ๋ฉด
์ค๊ตญ์ด ๋ฒ์ญ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ฐ์์ค๋ ์ง ํ
์คํธ ํด๋ณด์.
- Headers ์์ ํด๋ผ์ด์ธํธ ID์ ์ํฌ๋ฆฟ ํค๋ฅผ ์ ๋ ฅํ๋ค.
- Body์ ๋ฒ์ญํ ํ๊ตญ์ด ๋ฌธ์ฅ์ ์
๋ ฅํด์ ์์ฒญํ๋ฉด
JSON์ผ๋ก ์ค๊ตญ์ด๋ฅผ ์๋ตํด์ค๋ค!
'๐ Open API > Naver' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Open API] Naver - ๋ค์ด๋ฒ ๊ฐ๋ฐ์์ผํฐ API ์ด์ฉ์ ์ฒญ ๋ฐ ์ดํ๋ฆฌ์ผ์ด์ ๋ฑ๋ก๋ฐฉ๋ฒ (1) | 2024.02.14 |
---|