REST API(swaggerドキュメント付き)をOutSystemsで読むとどうなるか

REST APIの仕様である、Swaggerのサンプル(Petstore)をOutSystemsで読み込む(APIを利用するActionを自動生成する)とどうなるか確認してみました。

swaggerファイルを取り込む手順

http://petstore.swagger.io/にあるサンプルから、swaggerファイルを取得して、OutSystemsのConsume REST APIで読み込んでみました。

Logic>Integrations>RESTを右クリックして、「Consume REST API…」を選択。

swagger形式のAPI定義があるので、現れたポップアップから「ADD ALL METHODS」し、URLとして「https://petstore.swagger.io/v2/swagger.json」を入力。

こんな感じのアクションとして解釈されました。

取込結果の検討

リソース

折角RESTなのに、リソースで分類して表示されないですね。例えばpetリソースであれば、addPetやgetPetが一まとまりになってくれたほうが使いやすいと思うのですが(Swagger UI上ではきちんとまとまっている)。

単純にアルファベット順に表示されるので、リソース単位にswaggerを取り込むなどの対策が必要かもしれません。ドラッグして移動できないか試してみましたが、だめでした。

リクエスト・レスポンス

REST APIのリソース、及びその内部にあるJSONオブジェクトはStructureに、配列はListにマッピングされるようです。

swaggerから自動生成されたStructureはData>Structures>「REST API名」(Logicに表示されるのと同じ名前。この場合は「SwaggerPetstore」)の下にありました。

APIドキュメント上に表示される想定されるHTTPステータスはアクションからは見られないようですが、公式ドキュメント(Handling REST Errors)によると、400以上のステータスが変えると、OutSystems内で例外を投げるそうです。

認証

手で作ったREST APIでは、AuthenticationがNone/Basic/Customで選択できたのですが、swaggerから作った方は、認証方式を選択するプロパティ自体がありませんね。

Basic認証用のユーザIDとパスワードを指定する場所だけがあります。

Simple Customizationsを見ると、Advanced>On Before RequestプロパティでNew OnBeforeRequestを選択し、作成されたOnBeforeRequestアクション中でヘッダを変更できるようなので、認証はほとんどこっちで実装する感じでしょうか。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする