SAP資格過去問ならSAPnavi

NoteやStripe決済で安全にSAP過去問を購入することができます。
領収書発行可能 / 即時入手可能

SAP過去問 (SAP Exam)

URI Templates

意味

URIテンプレートは、正しいリソースハンドラーを識別するために使用される文字列です。ルーティングアルゴリズムはリソースパスを使用し、接続されているすべてのURIテンプレートと照合して、最適なテンプレートのリソースハンドラーを呼び出します。

残りのライブラリは、3種類のURIテンプレートをサポートしています。

  1. 静的テンプレート

    このケースは、リソースを選択するためにリソースパスが正確に一致する必要がある場合に使用されます。

    たとえば、ルータに2つの製造元履歴が関連付けられている場合があります。

    -> attach(iv_template =’/ cars_history / masserati’ iv_handler_class =’CL_RESOURCE_MASERATI’)。

    -> attach(iv_template =’/ cars_history / ferrari’ iv_handler_class =’CL_RESOURCE_FERRARI’)。

    したがって、リソースパスが/ cars_history / ferrariの場合、ハンドラーCL_RESOURCE_FERRARIが呼び出されます。

  2. URI属性付き

    URI属性により、より柔軟なURIルーティングが可能になります。パターン'{‘ AttributeName ‘}’を使用すると、1つ以上の属性をテンプレートに挿入して、正確なリソースパスだけでなく、あらゆる種類の文字に一致させることができます。これは、コレクションを処理するリソースハンドラーがある場合に特に便利です。

    たとえば、次のattachコマンドで登録されたcarsリソースハンドラーがある場合があります。

    -> attach(iv_template =’/ cars_history / {MANUFACTURER}’ iv_handler_class =’CL_RESOURCE_MASERATI’)。

    したがって、次のリソースパスのいずれかが一致します。

    ‘/ cars_history / ferrari’

    ‘/cars_history/maserati’

    ‘/ cars_history / porsche’

    ..。

    だけでなく、’/ cars_history/1325’。

    ルーティング中に、{MANUFACTURER}に一致する変数部分は、中括弧で使用されるAttributeNameという名前のメソッドGET_URI_ATTRIBUTEおよびGET_URI_ATTRIBUTESを使用してRESTリクエストから取得できます。

  3. URI正規表現属性を使用

    任意の文字に一致する代わりに、URIテンプレートで正規表現を使用することもできます。これらの正規表現は、'{‘ AttributeName:Regex ‘}’の形式で記述されます。ここで、 Regexは、0個以上の文字に一致するABAP正規表現です。

    正規表現のあるURIテンプレートとないURIテンプレートを混在させることができます。

    次のURIテンプレートを使用して上記のサンプルを取得します。

    -> attach(iv_template =’/ cars_history / {ID:[0-9] +}’ iv_handler_class =’CL_RESOURCE_MASERATI’)。

    したがって、次のRESTリソースパスのいずれかが一致します。

    ‘/ cars_history / 0’

    ‘/ cars_history / 1’

    ‘/ cars_history / 2’

    ..。

    しかし、そうではありません

    ‘/cars_history/maserati’

    マセラティには数字だけではないからです。

    また、リソースパスと一致しませ

    ‘/cars_history/maserati’

    車のエンティティのIDは英字で始めてはならないためです。

    もう一つの例:

    -> attach(iv_template =’/ test / {path:。*}’ iv_handler_class =’CL_RESOURCE_TEST’)。

    ‘/ test /’で始まるすべてのリソースパスに一致しますが、URI属性パスには’/test/’以降のすべての文字が含まれます。‘/ test / segment1 / person / 1’の場合、URI属性パスは’segment1 / person/1’になります。

URIテンプレートの衝突

2つ以上のURIテンプレートが同じリソースパスに一致する場合があります。たとえば、パターン’/cars/{ID}/color’と’/cars/{ID}/{TIRE}は両方ともリソースパス’/ cars / 1/color’と一致します。

これを解決するために、RESTライブラリはJAX-RSバージョン1.1仕様で定義されているように一致するすべてのURIをソートします。

  1. 一致するすべてのテンプレートを並べ替えます。

    -主キーとして使用:テンプレート内のリテラルの数が降順(中括弧なし)

    -二次キーとして使用:降順の変数の数

  2. 最初の一致を使用します。

タイトルとURLをコピーしました