<br/>
# COTOHA APIを<br/>使ってみた。
#### 2020.3.9
<br/>
---
## 話すこと
- Cotoha APIって何?
- 作ったもの
- 使用アーキテクト
- 詰まったポイント 👈
---
## Cotoha API とは?
> NTTグループの40年以上の研究成果を活かした自然言語処理技術や音声認識・合成技術を、APIでお手軽に利用できるよう提供しているサービスです。
> By 公式
参考 : https://api.ce-cotoha.com/contents/index.html
---
<br/>
今回は **感情分析** を使ってみました🌟

<br/>
---
## 作ったもの
入力したtextを`cotoha api`に投げて、
その感情分析結果をブラウザ表示するアプリ

※ 見た目が終わってます.
---
## 使用アーキテクト
- React
- Redux
- express
- styled-components
- axios
- cotoha API
---
<br/>
# ここからが本題です🥺
<br/>
---
<br/>
### 詰まったポイント①
reactとexpress連携しないとだめだった。
<br/>
---
#### まずnodemon使いたい
expressのデフォルトだと、エラーになった瞬間にストップする。
```javascript=
"scripts": {
"start": "node ./bin/www",
"server": "nodemon ./bin/www"
}
```
---
#### concurrentlyも入れる
- expressとreactを同時に立ち上げないといけない。
- client側のpackage.jsonにproxyを設定する。
```javascript=
+ "proxy": "http://localhost:3001"
```
- server側scripts変更
```javascript=
"dev": "concurrently \"npm run server\" \"npm run client\" "
```
---
<br/>
### 詰まったポイント②
cotoha API叩けへんのやけど問題
<br/>
---
<br/>
- headerどこに書くん、そもそもaccess tokenとかどうやってかくん?🤔
<br/>
---
#### CLIでcotoha APIを叩く
```
curl -X POST -H "Content-Type:application/json;charset=UTF-8" -H
"Authorization:Bearer [accessToken]" -d
'{"sentence":"月が綺麗ですねって話し"}' "https://api.ce-cotoha.com
/api/dev/nlp/v1/sentiment"
```
---
#### expressのPOSTで
```javascript=
const headers = {
'Content-Type': 'application/json;charset=UTF-8',
'Authorization': 'Bearer [accessToken]'
};
const dataString = '{"sentence":"月が綺麗ですねって話"}';
```
僕はoptionsを作り、そこにbaseURLやmethodを定義しました。
---
<br/>
### 詰まったポイント③
そもそもexpressの書き方わからん
<br/>
---
<br/>
修行しました
※ CRUD Appとか作ると良きと思いました。
<br/>
---
#### 忘れがち...
- POSTパラメータを受け取るのに`body-parser`を使う。
#### postman
- 便利なので絶対使おうな!

---
<br/>
### 詰まったポイント④
client側のデータをサーバーに送る
→ axios使う.
<br/>
---
#### axiosとは
javascriptでサーバーと通信したいときに使うライブラリ
```javascript=
axios.get([url])
axios.post([url], [data])
```
`GET/POST/PUT/DELETE`等のリクエストできる。
結果がPromiseで返ってくる
---
<br/>
### 詰まったポイント 番外編
最初、Next.JSでやろうとしたけど、失敗。
<br/>
---
<br/>
### やりたかったこと
- redux-logger使ってみたかった
- firestore以外でDB構築して使いたかった。
- deployできてない...
<br/>
---
<br/>
### まとめ
- express使うとサーバーサイドのことちょっとわかる
- 使ったことないライブラリを使うのは楽しい
- 環境構築からやると、フレームワークのありがたみが凄い
<br/>
---
<br/>
コロナ気をつけましょう....🥺
**FIN**
<br/>
---
{"metaMigratedAt":"2023-06-15T05:02:22.251Z","metaMigratedFrom":"YAML","title":"COTOHA APIを<br/>使ってみた。","breaks":true,"slideOptions":"{\"transition\":\"slide\"}","contributors":"[{\"id\":\"e0601e09-9cc1-48a1-9057-c084a8d6c766\",\"add\":3578,\"del\":1065}]"}