OutSystemsにおけるREST APIの実装方法 -GETメソッド編-

OutSystemsとREST APIの概要

アプリケーション開発において、外部のWebサービスや他のアプリケーションとの連携は不可欠です。その連携方法として現在広く利用されているのが、REST (Representational State Transfer) という設計思想に基づいた REST API です。

ローコード開発プラットフォームのOutSystemsは、このREST API連携を標準機能でサポートしています。そのため、外部サービスを呼び出して利用する (Consume)だけでなく、自らサービスを外部に公開する (Expose)ことも容易に実現できます。
本記事では、OutSystemsでREST APIを扱う具体的な方法を解説します。

RESTとは

RESTとは、Web上で情報をやり取りするシステムを設計する際の、考え方やルールを定めたアーキテクチャスタイルの一つです。このRESTの考え方に基づいて実装されたAPIが REST API(またはRESTful API)と呼ばれます。

※本記事では、設計思想を指す場合は「REST」、それに基づき実装された具体的なAPIや機能を指す場合は「REST API」と表記しています。

REST APIが広く利用されている主な理由は、そのシンプルさと汎用性の高さにあります。

REST APIは、Webの標準技術であるHTTP/HTTPSを利用するため、特定のプラットフォームや言語に依存しません。
これにより、さまざまなシステムと容易に連携できます。
その柔軟性と使いやすさから、天気予報、地図、SNSといった、私たちの身近なサービスの多くでデータ連携の基盤として活用されています。

この仕組みは、APIを外部に公開する「サーバー (Expose)」と、それを呼び出して利用する「クライアント (Consume)」というシンプルな役割分担で成り立っています。
クライアントがサーバーに「リクエスト(要求)」を送信し、サーバーがそのリクエストに応じた「レスポンス(応答)」を返す、という非常に分かりやすいモデルです。

例えば、REST APIを使って天気予報サイトの情報を取得するイメージは以下(図1 REST APIの利用イメージ)のようになります。

図1 REST APIの利用イメージ

 

RESTは、前述したようにWebサービスの設計モデルであるため、以下のルールに従い作成する必要があります。

  • リクエストはURL(URI)で指定する
  • 何をするかはHTTPメソッドで指定する
    • HTTPメソッド:GET(取得)、POST(更新)、PUT(登録)、PATCH(更新)、DELETE(削除)
  • ステートレス(情報を保持しない・リクエストを記憶しない)であること
  • クライアントとサーバーは完全に分離すること

RESTの詳細はここでは割愛しますが、より詳しく知りたい方は参考となる以下のサイトをご確認ください。

参考URL:https://www.redhat.com/ja/topics/api/what-is-a-rest-api

サンプルプログラムによるREST APIの解説

サンプルプログラムを用いて、実際にREST APIの実装方法を解説していきます。

構築する機能について

処理イメージは以下(図2 実装処理イメージ)のとおりです。

図2 実装処理イメージ

 

従業員番号を入力し、結果を表示する画面は以下(図3 実装画面イメージ)とします。

図3 実装画面イメージ

 

使用するデータは以下(図4 従業員データ)とします。

図4 従業員データ

 

なお解説する内容は、REST APIのリクエストとなるConsume(利用する)と、レスポンスになるExpose(公開する)についての実装に焦点を当て、画面の構築方法についての説明は対象外とします。

REST APIの実装

REST APIを解説と実装する順番は、自らサービスを外部に公開する (Expose・サーバー側)→外部サービスを呼び出して利用する (Consume・クライアント側)の順で行います。REST APIの作成や、操作方法についての詳細な手順は、OutSystemsの公式ページをご参照ください。

参考URL:https://success.outsystems.com/ja-jp/documentation/11/integration_with_external_systems/rest/consume_rest_apis/consume_one_or_more_rest_api_methods/

Exposeの実装

REST APIを実装する場所は、Service StudioのLogicタブ内、Integrationsにあります(図5 REST API作成場所)。

図5 REST API作成場所

 

「REST」にマウスカーソルを合わせて右クリックしショートカットメニュー(図6 REST APIのショートカットメニュー)を表示させて、「Expose REST API」を選択し、ロジックを実装するアクションを作成します。

図6 REST APIのショートカットメニュー

 

作成するActionは、従業員情報を取得し、レスポンスとして該当する従業員情報を返却するので、メソッドは「GET」になります(図7 REST APIのプロパティ)。

図7 REST APIのプロパティ

 

作成するExposeの構成およびロジックは以下とします。

  1. Inputパラメータとして従業員番号、Outputとして従業員番号と処理結果を格納する変数を定義
  2. Inputパラメータをキーとして従業員テーブルから該当の従業員情報を取得
  3. 従業員情報が存在するかをチェック
  4. 従業員情報が存在する場合、返却値に従業員番号と、処理結果をセット
  5. 存在しない場合は、処理結果のみをセット

図8 Exposeの構成とロジックフロー

 

RESTのExposeは、Server Actionを作成するのと同様の流れで行えますが異なる点が2つあります。

  • Integrations > REST > Expose下に作成する
  • 複数個のOutputは作成できない

複数個のOutputが作成できない点は、図8の右部にある「1.Input、Outputの定義」のように、Structureを使用することで解決できます。この点はServer Actionの中でもFunction(Function = Yesに設定したアクション)が出力数を1つに制限される点と共通しています。

公開のRESTの作成ができたら、REST APIの仕様を確認するためにDocumentation(※)を開きます。

※Documentation:Swagger(REST APIの設計、開発、ドキュメント化を支援するツール群)仕様に基づいて記述されたAPIの仕様書

Documentationの参考URL:https://success.outsystems.com/ja-jp/documentation/11/integration_with_external_systems/rest/expose_rest_apis/document_an_exposed_rest_api/

「Expose」Action上で右クリックして、ショートカットメニュー(図9 Exposeのショートカットメニュー)を表示させます。その中からOpen Documentationを選択します。

図9 Exposeのショートカットメニュー

 

ブラウザーが起動し、REST APIのDocumentation(図10 OutSystemsのREST APIのDocumentation画面)のページが表示されます。

図10 OutSystemsのREST APIのDocumentation画面

 

作成したREST APIを選択するとREST APIのエンドポイントであるURL、パラメータ、返却値のイメージなどの仕様を確認できます(図11 REST APIのDocumentationの詳細)。

図11 REST APIのDocumentationの詳細

 

Exposeの実装は以上となります。

Consumeの実装

次に、従業員情報をリクエストするConsumeを実装し、取得した情報を画面に表示する処理を作成します。

Consumeの実装をするにはService StudioのLogicタブ内、Integrationsにある「REST」にマウスカーソルを合わせて右クリックしショートカットメニュー(図6 REST APIのショートカットメニュー)を表示させて、「Consume REST API」を選択します。

以下の画面(図12 Consume設定画面(メソッドとURLの設定))が表示されますので、呼び出すREST APIのメソッドとエンドポイントのURLを設定していきます。

図12 Consume設定画面(メソッドとURLの設定)

 

図12のMethod URLのメソッドの選択部分は「GET」を選択します。URL部分はExposeのDocumentation画面に表示されているエンドポイントのURLを指定します。GETとエンドポイントのURLの設定ができたら接続確認を行います。テスト用にパラメータとして引き渡す従業員コードを入力し、Testボタンを押します。正常にやり取りができると、以下(図13 Consume設定画面(Test実行結果))のようにAPI response test result欄に、HTTPのステータスに「200 OK」が表示されます。OKの下には、受け取った従業員データがJSON形式で表示され、確認できます。

図13 Consume設定画面(Test実行結果)

 

最後に、リクエストを送信し、レスポンスを受け取って画面に表示するロジックを作成します。ロジックは、従業員参照ボタンのOn Clickイベントに実装します(図14 従業員参照ボタンのロジックフロー)。

図14 従業員参照ボタンのロジックフロー

 

補足として、OutSystemは入出力パラメータが保持する情報を定義するストラクチャを自動的に作成します。そのため、REST APIを使ったアクションフローでは、JSON形式で受け取ったデータをデシリアライズする処理を記述する必要がありません。詳細は、OutSystemsの公式ページをご参照ください。
参考URL:https://success.outsystems.com/ja-jp/documentation/11/integration_with_external_systems/rest/consume_rest_apis/rest_api_structures/

これで実装は完了です。実装した機能により、従業員参照ボタンをクリックすることで、REST APIのリクエスト・レスポンスを利用して従業員情報を画面に表示することができます。

まとめ

OutSystemsのREST API機能のGETメソッドについて実装を交えて解説いたしました。本記事を通して、OutSystemsは、REST APIを容易に実装できることをご理解いただけたのではないでしょうか。

本記事が、皆様のREST APIの実装の助けとなれば幸いです。

なお、REST APIはGETメソッドの他にもPOSTやPUTといったメソッドもあります。これらについては、別の機会に解説いたしますので、ご期待ください。

tdiはローコード開発に力を入れていますので、以下のサービスページよりお気軽にお問い合わせください。

 

OutSystems® とロゴはOutSystems-Software Em Rede S.A.の登録商標です。

お問い合わせ先

執筆者プロフィール

Tadokoro Yasuto
Tadokoro Yasutotdi OutSystems推進室
入社して30余年。日々進化するIT技術に、悪戦苦闘の毎日。
プライベートでは学生時代にはまっていたバンドをまた始めたいと思っている。

関連記事