私は簡単にマップされていない12345に変更を適用するために適用される一般的なアクションのサブコレクションを利用 本体のJSONプロパティからASP.NETコアアクションを選択するにはどうすればよいですか?
POST /アイテム/ 12345 /アクションのように、私はRESTインターフェースのエンドポイントを持っていますコンテンツまたはそれを直接的に他のサブコレクションに分類します。
私の質問は次のとおりです。複数の異なるアクションタイプがある可能性があるため、アップロードされたドキュメントのコンテンツのJSONプロパティによってアクションが識別されます。
リクエストのJSON本体の一部でアクションを選択する方法を教えてください。以下のような可能性に何かが...あり
[Route("api/v1/items") public class ItemsController : Controller { [HttpPost("{id}/actions")] [CheckJsonBody("type", "ActionA")] public ActionResult DoActionA(int id, ActionA a) { // do something } [HttpPost("{id}/actions")] [CheckJsonBody("type", "ActionB")] public ActionResult DoActionB(int id, ActionB b) { // do something } }
ようになり、要求...私は
Microsoft.AspNetCore.Mvc.ActionConstraints.ActionMethodSelectorAttribute
(GitHub)までのコードの中に自分自身を掘っている{ "type": "ActionA", "abc": "xyz" }
。
しかし、そこから始めて、高性能ソリューションに到達するには少し失われています。私はボディをデコードする必要がありますか、または制約が評価されたその時点ですでに行われていることですか?
ps:はい、私は1つのアクションでそれらを処理し、 "タイプ"プロパティを切り替えることができます。
あなたの結論に関するコードや例はありますか? – CSharper
いいえ、実装したことはありません。 – Thomas