コントローラが[Route("api/entities")]
とマークされています。あなたが見ることができるように、注釈を使用して、私はいくつかの監査に要求を保存してのみ許可されたユーザーへのリクエストを承認GETパラメータによるコントローラの一致方法
[Audit(ActionType.EntityList)] // custom annotation for audit
[Authorize]
[HttpGet]
public IActionResult GetEntities()
{
// ...
}
:すべてのエンティティを取得するための方法があります。
今、このエンドポイントを拡張して、上位N個のエンティティを返すようにしたいと考えています。リクエストの例:/api/entities?top=5
。私はan optional parameter for the method and use if
to detect the caseを使うべきであることを知りました。
ただし、そのような呼び出しを異なるタイプ(例:[Audit(ActionType.EntityTop)]
)として監査に保存する必要があります。私はそこで承認する必要はありません(誰でもトップエンティティを取得できます)。
/api/entities
リクエストを1つのメソッドにマップするにはどうすればいいですか?/api/entities?top=N
を別のメソッドにマップするにはどうすればよいですか? JavaのSpringでは、params
field of @RequestMapping
を使用します。
top
パラメータが返されるリストのみを変更するので、このエンドポイントのURLを変更しないようにします。そのためにはshould use GET parametersです。同じURLを持つことで、私はレスポンスのセマンティックな意味も変えません(それは同じエンティティのリストです)。 RestangularのようなRESTfulフロントエンドフレームワークを使用する場合は重要です。
と一致しますパラメータは、異なるActionTypeを使用し、Authorizeを持っていません – musefan
'[HttpGet] public IActionResult GetTop(int top)'のような意味ですか?私はそれを試してみましょう... – fracz
ええ、私はMVCで動作過負荷がどのように動作するのかわかりません。 [多分これは役に立つかもしれません読んで](https://stackoverflow.com/questions/436866/can-you-overload-controller-methods-in-asp-net-mvc) – musefan