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は新しい入出力パラメータにより保持されている情報を定義するために、再利用可能な既存のストラクチャを確認します。これにより、モジュール内のストラクチャの数が最小限に抑えられます。
以下のルールに基づき、既存のストラクチャが新しいメソッドの要件に準拠しているとみなされる場合、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」に変更する。
- ストラクチャにAlways_use_httpsアトリビュートを追加する。
新規ストラクチャの作成例
以下の例では、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つのみです。これはアトリビュートの半数未満であるため、既存のストラクチャは再利用されません。OutSystemsによって「Setting」という名前の新しいストラクチャが作成され、「GetSettings」メソッドのレスポンスが保持されます。
以前のSettingsストラクチャは、PostSettingsメソッドで引き続き使用されているため、削除されません。