shuhelohelo’s blog

Xamarin.Forms多めです.

ASP.NET Coreのバインディングソース属性について

https://docs.microsoft.com/ja-jp/aspnet/core/web-api/?view=aspnetcore-3.0

アクションメソッドのパラメーターにFromBodyやFromQueryなどつけることがある。

これはバインディングソース属性という。

アクションメソッドのパラメーターは推論規則によって自動的に取得される。なのでバインディングソース属性は必要ない場合も多い。

しかし、推論規則のために正しく取得できない場合もあるので、明示することも必要。

クエリパラメータやリクエストボディから。

推論規則は以下のようなもの。

  • 複合型はリクエストボディから。
  • 単純型はクエリパラメータから。

などなど。

詳しくはこちら。

https://docs.microsoft.com/ja-jp/aspnet/core/web-api/?view=aspnetcore-3.0#binding-source-parameter-inference

例えば、もし単純型をリクエストボディから取得したい場合はFromBody属性を使う。

どちらがいいのかは迷う。

明示するのがいいのか、便利な仕組みをフル活用してより重要なことに集中したらいいのか。