2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

AzureLogicAppsでAPI wrapper

Last updated at Posted at 2016-12-26

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 普通に上記画面から作成

今回の最終形態

スクリーンショット 2016-12-26 10.45.13.png API wrapperなので、上記の通り。 下記のような、いたってシンプルな構成。 コンポーネントの追加は「ステップの追加」からポンポン追加できます。
name 概要
要求 Http(s)のlisten
HTTP Http(s)のinvoke
応答 Http(s)のresponse

各項目についてみていきます。

要求

スクリーンショット 2016-12-26 10.52.03.png
urlをjsonの必須項目として設定。
{
  "properties": {
    "url": {
      "type": "string"
    }
  },
  "required": [
    "url"
  ],
  "type": "object"
}

HTTP

スクリーンショット 2016-12-26 10.52.42.png
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

状態コード、ヘッダー、本文すべて、http invokeの結果を引き継ぐ形に設定する。

実行

走らせてみる

スクリーンショット 2016-12-26 13.01.34.png Runから実行

test

Postmanで実行してみる
スクリーンショット 2016-12-26 13.39.42.png

成功ー。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?