OutSystemsのREST API作成機能を試してみました

プログラムを書かずにGUIからの操作のみでアプリケーションを作成できるOutSystems Platformに、REST APIを作成して公開できる機能があったので試してみました。

シリーズ一覧

公式情報

英語ですが、そのものずばり、CRUDそれぞれのAPIを公開するための手順が公式にありました。

この、READ用の手順に沿って操作を試してみます。

http://www.outsystems.com/help/servicestudio/9.0/default.htm#Integrating_with_other_systems/Web_Services/Expose_Data_Using_REST.htm

事前準備

開発環境

動作確認できる環境としてクラウドの環境が提供されているのでサインアップすればすぐに試せます。開発環境をインストールして、ログインしてください。

テスト用にAPIとして公開するテーブルをこんな感じに作成します。

なれちゃえばここまで5~10分くらいでできそう。

WS000004

REST API作成

画面右上でLogicを選択すると、IntegrationsフォルダにRESTという記述があるので、公式の手順に従い、

  1. RESTの上で右クリックして、「Expose REST API」してAPIを作成(下図では「Customers」としています)
  2. 作成したAPIを右クリックして、「Add REST API Method」して実際に動作するメソッドを作成(下図では「GetCustomers」)
  3. 追加したメソッドを右クリックして「Add Output Parameter」(ListedCustomersに該当。これがないとせっかくパブリッシュしてもからの結果が返ってきます。Data Typeを返したいデータの方にします。この場合Customer Entityの一覧を返したいのでCustomer Listとしています)。
  4. GetCustomersをダブルクリックしてロジックを作成。公式のURL通りに作りますが、ListAppendAllの設定が書いてないのでスクリーンショットを貼っておきます。SourceListを上のアグリゲートにして、Listを3で定義したパラメータにします。

WS000006

ListAppendAllの設定は下図の通り

WS000007

後は通常の開発と同様にパブリッシュして、ブラウザで開きます。開く先は、定義したメソッドのURL。

結果

入力パラメータ指定せず、アクセスメソッドをGETにしているのでURLを開けば以下のようなJSONが帰ってきました。

OutSystemsで作成した業務アプリケーションの機能やデータの一部を、新たに他システムに利用するのが簡単にできそうです。

[
{
"Id":1,
"Name":"顧客1",
"Address":"住所1",
"Tel":"00-0000-0000",
"Lat":35.100000000000000000000000000,
"Lon":135.60000000000000000000000000,
"History":"新規顧客"
},
{
"Id":2,
"Name":"顧客2",
"Address":"住所2",
"Tel":"11-1111-1111",
"Lat":35.200000000000000000000000000,
"Lon":135.70000000000000000000000000,
"History":"電話に注意"
},
{
"Id":3,
"Name":"顧客3",
"Address":"住所3",
"Tel":"22-2222-2222",
"Lat":35.300000000000000000000000000,
"Lon":135.80000000000000000000000000
}
]