1

私の REST アプリケーション モデルでは、多くのエンティティに "Auditable" インターフェイスが含まれています。これにより、これらのエンティティのエンドポイントにこれらのサブパスを追加する必要があります。

/myEntityResource:

  #... boring code ...

  /createdBy:
    get:
      responses:
        200:
          body:
            application/hal+json:
              example: !include samples/userAccount.json
  /lastModifiedBy:
    get:
      responses:
        200:
          body:
            application/hal+json:
              example: !include samples/userAccount.json

理想的な解決策は、「監査可能」な特性をエンドポイントに追加することですが、RAML の定義によると、特性は動詞レベルでのみ適用されます。

私にとってもう 1 つの理想的なオプションは、両方のパスを含むリソース タイプ「auditableItem」を定義することですが、RAML 定義ではリソース タイプにパスを追加することはできません。

現時点での私の最善のアプローチは、すべてのエンドポイントに両方のパスを追加し、本文を別のファイルに含めることです。

/createdBy: !include auditableBody.raml
/lastModifiedBy: !include auditableBody.raml

もっと良い方法はありますか?

4

1 に答える 1

1

短い答えは「はい」です。

http://apiworkbench.com/docs/#creating-resource-typeによると、次のようにリファクタリングできます。

#%RAML 1.0 
title: Auditable Example
version: 1

resourceTypes:
  Auditable-createdBy:
    get:
      responses:
        200:
          body:
            application/hal+json:
              # example: !include samples/userAccount.json
  Auditable-lastModifiedBy:
    get:
      responses:
        200:
          body:
            application/hal+json:
              # example: !include samples/userAccount.json

/myEntityResource:
  /createdBy: 
    type: Auditable-createdBy
  /lastModifiedBy: 
    type: Auditable-lastModifiedBy

resourceTypesもちろん、独立したファイルに移動することもできます。

于 2016-01-05T10:04:24.313 に答える