REST URLをカスタマイズする
この記事は作成中です。この新しいバージョンはどの程度参考になりましたか。投票でお聞かせください。
OutSystemsでは、必要に応じてREST APIメソッドのURLをカスタマイズできます。
たとえば、次のURLがあるとします。
GET https://<サーバー>/PhoneAPI/rest/v1/GetContact?Id={Id}
これを次のようにカスタマイズできます。
GET https://<サーバー>/PhoneAPI/rest/v1/Contacts/{Id}
これには、以下の手順を実行します。
-
[Logic]タブで、Integrationsフォルダを開きます。
-
REST APIを展開し、変更するメソッドを選択してプロパティを表示します。
-
REST APIメソッドのURL Pathプロパティを新しいカスタムURLに設定します。
例:
/Contacts/{Id}
注記: URLに含まれる入力パラメータを必須として設定する必要があります。
これに従ってURLプロパティが変更されます。
以下のセクションでは、エンドポイントをカスタマイズする方法の例をいくつか示しています。
コレクションのエンドポイントの例
リソースに関連するメソッドには同じ名前を使用します。OutSystemsは、どのメソッドを実行するかをHTTP動詞(GET
、POST
など)によって認識します。
デフォルトのエンドポイント | URLパス | カスタマイズされたエンドポイント |
---|---|---|
GET /PhoneAPI/rest/v1/GetContacts |
/Contacts |
GET /PhoneAPI/rest/v1/Contacts |
POST /PhoneAPI/rest/v1/CreateContact |
/Contacts |
POST /PhoneAPI/rest/v1/Contacts |
注記: 簡略にするため、エンドポイントにはプロトコルとサーバー情報を示していません。
リソースのエンドポイントの例
特定のリソースを処理する場合、「URL Path」プロパティの値をコレクション名で開始し、HTTP動詞に応じて以下のいずれかを追加します。
-
GET
またはDELETE
の場合:{
と}
の間にリソース識別子(REST APIメソッドの入力パラメータ)を追加します。 -
PUT
の場合: リソースはすでにリクエストのヘッダーまたはボディで渡されているため、何も追加しません。
デフォルトのエンドポイント | URLパス | カスタマイズされたエンドポイント |
---|---|---|
GET /PhoneAPI/rest/v1/GetContact |
/Contacts/{Id} |
GET /PhoneAPI/rest/v1/Contacts/{Id} |
DELETE /PhoneAPI/rest/v1/DeleteContact |
/Contacts/{Id} |
DELETE /PhoneAPI/restv1/Contacts/{Id} |
PUT /PhoneAPI/rest/v1/UpdateContact |
/Contacts |
PUT /PhoneAPI/rest/v1/Contacts |
サブコレクションのエンドポイントの例
マスター/詳細の関係の場合、詳細をマスターリソースのコレクションとして扱います。
デフォルトのエンドポイント | URLパス | カスタマイズされたエンドポイント |
---|---|---|
GET /PhoneAPI/rest/v1/GetContactAddresses |
/Contacts/{Id}/Addresses |
GET /PhoneAPI/rest/v1/Contacts/{Id}/Addresses |
重要な注意事項
-
.NETの制限により、メソッドの呼び出しが動作しなくなるため、URLの最後の部分(最後の「/」(スラッシュ)記号より後ろの部分)に「.」(ピリオド)記号を含めることはできません。
-
公開しているREST APIメソッドのカスタムREST URLで予約文字「?」および「=」を使用することはできません。
これらの文字はURLのクエリ文字列部分(URLの「?」文字で始まる部分)に含まれ、URLのクエリ文字列部分は公開しているREST URLメソッドで管理されます。 -
公開しているREST APIメソッドを呼び出すとき、Receive Inプロパティを「URL」に設定した入力パラメータを指定する必要があります。これらはカスタムURLのクエリ文字列の一部に含まれません。
たとえば、前のセクションで示した例の続きで、2つの入力パラメータ「Id」と「AddressId」を備えた公開しているREST APIメソッド「GetContactAddress」について考えます。このメソッドのURL Pathプロパティを以下の値に設定できます。
/Contacts/{Id}/Addresses/{AddressId}
この場合、URLで受け取るように定義されたすべての入力パラメータがURL Path値に含まれます。
Id=5
(連絡先のID)とAddressId=10
を使用してこのメソッドを呼び出すには、以下のURLを使用します。GET /PhoneAPI/rest/v1/Contacts/5/Addresses/10
また、「AddressId」入力パラメータをカスタムURLに含めず、URL Pathプロパティを以下の値に設定することもできます。
/Contacts/{Id}/Addresses
この場合、「AddressId」の値を含むメソッドを呼び出すには、URLの末尾にクエリ文字列の一部としてこのパラメータを含めます。
GET /PhoneAPI/rest/v1/Contacts/5/Addresses/10