Web APIのデータモデルをどのようにバインドしますか?
Web API内では、データモデルを次の方法でバインドすることができます:
- 属性モデルバインディング:リクエストデータと対応する属性オブジェクトをメソッドパラメータで宣言することで、モデルバインディングを実現できます。例えば、FromBody属性を使用してリクエストボディのデータをモデルオブジェクトにバインドすることができます。
public IActionResult Post([FromBody] MyModel model)
{
// 处理模型数据
}
- パラメーターベースのモデルバインディング:リクエストデータと直接関連するパラメーターをメソッドのパラメーターで宣言することでモデルバインディングを実現することができます。例えば、[FromQuery]属性を使用してクエリ文字列のデータをパラメーターにバインドすることができます。
public IActionResult Get([FromQuery] string name)
{
// 处理查询参数
}
- ルーティングモデルバインディング:モデルバインディングは、ルートテンプレートでパラメータを定義することで実現できます。例えば、ルートの一部をメソッドのパラメータにバインドすることができます。
[HttpGet("users/{id}")]
public IActionResult GetUser(int id)
{
// 处理用户ID
}
- 特定のバインディングロジックを処理するために、カスタムモデルバインダーを実装することができます。たとえば、特定のタイプのデータをリクエストから抽出し、そのタイプの値を変換するためにカスタムバインダーを実装できます。
public class MyModelBinder : IModelBinder
{
public Task BindModelAsync(ModelBindingContext bindingContext)
{
// 自定义绑定逻辑
}
}
public IActionResult Get([ModelBinder(typeof(MyModelBinder))] MyModel model)
{
// 处理模型数据
}
これらは一般的なデータモデルバインディング方法です。具体的な要求に応じて適切な方法を選択してバインディングすることができます。