通过使用 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)
{
...
}
但我不知道从哪里开始,欢迎任何想法或建议。