GYAOのtsです。
我々のチームは、オールパブリッククラウドで、Microservice Architectureを採用した次期バックエンドを設計中です。
経緯
EmotionAPIやその他高機能なAPIはすでにAzureで提供されているが、それらのAPIを組み合わせたり、
非同期処理を噛ませたり、というのをシームレスに実現したいなと思い、色々探していたところLogicAppsを見つけた。Apache Camel好きなので、同じようなアプローチのこういったソリューションはとてもしっくり来る。Apache Camel + route デザイナ + α と言った感じでしょうか。取り合えずEmotion API wrapperを作ってみる
EmotionAPIに関してはこちらでも試してみましたが、面白いですね。
ハンズオン
作成
![スクリーンショット 2016-12-26 10.38.08.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F114329%2F7280a7a2-5fea-24ca-3373-b226b5e56fce.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=45bbb34158399cb91c954824cdd52463)
今回の最終形態
![スクリーンショット 2016-12-26 10.45.13.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F114329%2F4eb4112e-6f96-66b0-7688-e8fa3c6efc30.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=ee0eb34f84ec986aa3ab42e22a72feb5)
name | 概要 |
---|---|
要求 | Http(s)のlisten |
HTTP | Http(s)のinvoke |
応答 | Http(s)のresponse |
各項目についてみていきます。
要求
![スクリーンショット 2016-12-26 10.52.03.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F114329%2Ffcc961f4-d85c-8b79-4dfe-dfd1a7cd1e01.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=8bdbc334b1f8190b93c9242732187ea4)
urlをjsonの必須項目として設定。
{
"properties": {
"url": {
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
}
HTTP
![スクリーンショット 2016-12-26 10.52.42.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F114329%2F59bf53f3-2cbf-c554-645a-2667c443734a.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=70ba20d1cbd4734b2688db74110b62e9)
name | 概要 |
---|---|
方法 | EmotionAPIへそのままPOSTする形にします。 |
URI | EmotionAPIのURIです。 |
ヘッダー | EmotionAPIのお決まりのヘッダーを追加します。(鍵等) |
本文 | 要求本文をそのままbodyとしてinvokeします。 |
urlをjsonの必須項目として設定。
{
"Ocp-Apim-Subscription-Key": "keyです",
"content-type": "application/json"
}
応答
![スクリーンショット 2016-12-26 10.53.21.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F114329%2F05999b66-7e94-64a6-c22c-c78c00bf1c50.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=0d94a7a0e56ce0cd9437398fb5227f05)
状態コード、ヘッダー、本文すべて、http invokeの結果を引き継ぐ形に設定する。
実行
走らせてみる
![スクリーンショット 2016-12-26 13.01.34.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F114329%2Fabedcc2e-8c1d-0051-f92e-526bd85477c5.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=85e19944493fccaa8804d88c6c8b7ad5)
test
成功ー。