3
0

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 その2

Last updated at Posted at 2017-01-25

GYAOのtsです。
我々のチームは、オールパブリッククラウドで、Microservice Architectureを採用した次期バックエンドを設計中です。

経緯

前回の投稿でAzure LogicAppsとCognitive Services であるEmotionAPIを使用してAPIWrapperを作ってみたが、
テスト用にモックAPIを提供したりAPIのimplementationを切り替えたり、APIのキー発行したり、中央集権的にマイクロサービスを管理するためにはAPIGatewayがあったほうがいいかなと思っている。
候補としては下記

PaaSでは上記くらいがチームとして候補に上がったので実際に前回作成したAPIWrapperと繋いでみることにする。

前段

今回つなぐAPIは、LogicAppsで作成したwebservice。
リクエストヘッダーでEmotionAPIFaceAPIを切り替えられるように作成してある。LogicAppsは個人的にはパフォーマンス面が少し心配だが、そもそもEmotionAPI等に高いスループットを期待するケースはあまりないかと思うので今のところはよしとする。
デザイナ上は以下のような形になる。

スクリーンショット 2017-01-25 19.48.56.png

ヘッダーをdoactionというキーで探し、emotion,faceが入っていればそれぞれのAPIを実行して結果を返す。

API Management

AzurePortalから

新規→APIManagementを選択

スクリーンショット 2017-01-25 19.54.11.png

必要事項を入力したら、1つAPIが作成されるので、そのAPIのAPIプレビューを選択する。
スクリーンショット 2017-01-25 19.58.21.png

ここにリストされているサービスに結合可能。なんでもできますね。
スクリーンショット 2017-01-25 20.00.54.png

今回はLogicAppsを選択。Functionsもつながる予定ですね。確かにそうなったら楽しいな。
WADLってここまで知名度あったんですね。微妙な感じかと思っていました。今は皆Swaggerかと。

以下のような感じで作成。
スクリーンショット 2017-01-25 20.09.09.png
※Browseからロジックアプリを選択すればほぼ補完されます。

下記のようにAPIManagementのデザイナが見れるようになると思う。今回はリクエストヘッダのdoactionにemotionかfaceという文字列が入るようにしたいのでFrontendの鉛筆マークを押して編集する。
スクリーンショット 2017-01-25 20.12.27.png

headerのdoactionを追加して、save。「+ Add Value」を選択してemotionとfaceを入力する
スクリーンショット 2017-01-25 20.19.09.png
作業的には以上。

ドキュメントportalや、userの追加等の機能もあるので相当便利。
まずは発行者ポータルに行ってみる。
スクリーンショット 2017-01-25 20.20.41.png
発行者ポータルではユーザーの管理やAPIのドキュメンテーションやその他もろもろができる。今回は割愛。そのまま右上のリンクからDeveloperPortalへ
スクリーンショット 2017-01-25 20.36.20.png

APIsから自分の作ったAPIへ行ってみると、ドキュメントが作成されている。使用側にはこれを配布すれば良い。
スクリーンショット 2017-01-25 20.37.36.png
使用側がこれを使いたいときにはオーダーを発行できる。発行者側がオーダーを許可してキーが発行されるようなイメージ。許可は先程の発行者ポータルでできる。

このままDeveloperPotalからAPIを実行する事ができるので、Try it を押して見る。
スクリーンショット 2017-01-25 20.42.18.png
ちゃんとdoactionが2択になっている。要求本文にEmotionAPIと同じようにjsonで画像URLを入力すれば普通に結果が返ってくる。

所感

APIManagement自体はまだほとんど試せていませんが、とても高機能で直感的です。
今後更に他のAzureのサービスと連携していくでしょうし、マイクロサービスの屋台骨になりそうな気がします。
お金とも相談ですが我々のチームでは採用は確定でしょうね。

ちなみにこの作業はベトナム出張中にカフェで違うPCで行いました。
4635086464567134848-account_id=1.jpg

いろいろ問題もあると思いますが、時代は進化してますね。身一つあれば仕事ができる時代ですね。

3
0
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
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?