REST APIのストラクチャ
モジュール内のREST APIメソッドを利用すると、OutSystemは、入出力パラメータが保持する情報を定義するストラクチャを自動的に作成します。各ストラクチャの名前は以下から生成されます。
- HTTPリクエストの種類
- メソッド名
- リクエストまたはレスポンスを保持するかどうか
各入出力パラメータのデータ型は、OutSystemsのデータ型にマッピングされます。
以下の例では、TwitterからREST APIメソッドを利用しています。
HTTP Request type: POST
URL: https://api.twitter.com/1.1/account/settings.json?lang={mylanguage}
Response:
{
"use_cookie_personalization": true,
"language" : "en"
}
このメソッドに対し、以下のストラクチャが自動的に作成されます。
ストラクチャの再利用
新しいREST APIメソッドを追加したり既存のメソッドを変更したりすると、OutSystemsは新しい入出力パラメータにより保持されている情報を定義するために、再利用可能な既存のストラクチャを確認します。これにより、モジュール内のストラクチャの数が最小限に抑えられます。
両者の間で以下の条件が満たされている場合、新しいストラクチャは作成されず、既存のものが再利用されます。
- 同じ名前のアトリビュートすべてが、同じ種類または互換性のある種類である
- 新しいアトリビュートの半分以上を扱っている
既存のストラクチャを再利用する場合、ストラクチャを使用する様々なメソッドに合わせて変更を行う必要が生じることがあります。たとえば、ストラクチャの名前を変更して新しいアトリビュートを追加するなどです。すでにそのストラクチャを使用しているモジュールのメソッドは、変更の影響を受けません。
ストラクチャの再利用の例
先ほどのTwitterのREST APIの例で、今回は同じREST APIのGetSettingsメソッドを追加し、一部の関連するレスポンスパラメータのみを保持します。
HTTP Request type: GET
URL : https://api.twitter.com/1.1/account/settings.json
Response:
{
"use_cookie_personalization": true,
"language" : "en",
"always_use_https": true
}
既存のPostSettingsResponseストラクチャは新しいメソッドと互換性があるため、ストラクチャが再利用されます。以下の変更が行われます。
- 使用される両方のメソッドに一致するように、ストラクチャの名前を「Settings」に変更する。
- ストラクチャにアトリビュートを追加する。
新規ストラクチャの作成例
以下の例では、GetSettingsメソッドのレスポンス例に多数のパラメータを追加し、既存のパラメータを1つ削除します。
{
"language" : "en",
"always_use_https": true,
"discoverable_by_email": true,
"screen_name" : "theSeanCook",
"show_all_inline_media" : false,
"geo_enabled" : true,
"protected" : false
}
既存のストラクチャで扱えるアトリビュートは3つのみです。これはアトリビュートの半数未満であるため、既存のストラクチャを再利用することはできません。GetSettingsメソッドのレスポンスを保持するために、「Setting」という名前の新しいストラクチャが作成されます。
以前のSettingsストラクチャは、PostSettingsメソッドで引き続き使用されているため、削除されません。