1

私は API を作成しようとしていますが、カスタム アクションをリソースに追加する良い方法を見つけるのに苦労しています。たとえば、私のユーザー リソースでは、アクションenabledとが必要ですdisableが、通常のブループリント グループ内では、これらをグループに追加することはできません。

## User [/users/{id}]

### Update a User [PATCH]
    ...

### Delete a User [DELETE]
    ...

### Disable a User [PATCH]
    ....

ここでは、Disable a UserUpdate a Userの両方が同じ URL を指していますが、これは私が望んでいるものではありません。/users/{id}これらでそれぞれ URLとを生成したいと考えています/users/{id}/disable

他の API ソースを見ると、他の人は名前付きリソースを使用せずにそれを行っており、次のようになります。

## /users/{id}

    ### Update a User [PATCH]
        ...

    ### Delete a User [DELETE]
        ...

## /users/{id}/disable

    ### Disable a User [PATCH]
        ...

このアプローチを使用することもできますが、ほとんどのブループリント ツールでレンダリングしたときにきれいになるため、最初のアプローチを使用することをお勧めします。

最初のアプローチを使用してカスタムアクションを実行する方法はありますか、または他の誰かが同じ種類のものを実装するよりクリーンな方法を持っていますか?

4

1 に答える 1

1

この例では、2 つの異なる URL があるため、実際には 2 つの別個のリソースになります。1 つのリソースはユーザー リソースで、もう 1 つは無効化ユーザー リソースです。これらを API ブループリントで整理するために、これらのリソースをResource Groupでグループ化できます。

# Group User Resources

## User [/users/{id}]

### Update a User [PATCH]
    ...

### Delete a User [DELETE]
    ...

## Disable User [/users/{id}/disable]

### Disable User [PATCH]
    ...

これにより、ドキュメント内でそれらを結び付けたまま、別々の URL に対して別々のアクションを実行できます。

于 2014-10-28T07:11:01.903 に答える