ExpandoObject をパラメーターとして使用することで、Web.API プロジェクトに PATCH メソッドを実装する非常に巧妙な方法を作成しました。以下に示すように:
[HttpPatch, Route("api/employee/{id:int}")]
public IHttpActionResult Update(int id, [FromBody] ExpandoObject employee)
{
var source = Repository.FindEmployeeById(id);
Patch(employee, source);
Repository.SaveEmployee(source);
return Ok(source);
}
ただし、ドキュメントを生成するとき、ApiExplorer は ExpandoObject をどうするかについて途方に暮れています。これは完全に理解できます。ApiExplorer を操作して適切なドキュメントを提供する方法について、誰かアイデアはありますか?
私の考えは、期待される実際のタイプを指す新しい属性を導入することでした:
public IHttpActionResult Update(int id, [FromBody, Mimics(typeof(Employee))] ExpandoObject employee)
{
...
}
しかし、どこから始めればよいかわかりません。アイデアや提案は大歓迎です。