我以非标准方式编写 Web API 控制器,将参数作为动态对象获取。
这会导致 NSwag 出现问题。因为方法定义中没有参数,NSwag 无法生成需要的东西。
我想知道在这种情况下是否有任何使用 NSwag 的选项。也许我可以将一些属性添加到方法中,以便 NSwag 能够生成 API?
[HttpPost]
[ActionName("create-account")]
public IHttpActionResult CreateAccount()
{
var body = Request.Content.ReadAsStringAsync().Result;
dynamic json = Utils.GetJsonBody(body);
if (!Utils.GetJsonPropertyValueByPropertyName<String>(json, "email", out String email))
{
return Content(HttpStatusCode.BadRequest, "Please provide a valid email.".AsApiMessageResult());
}
if (!Utils.GetJsonPropertyValueByPropertyName<String>(json, "name", out String name))
{
return Content(HttpStatusCode.BadRequest, "Please provide an account name.".AsApiMessageResult());
}
if (!Utils.GetJsonPropertyValueByPropertyName<String>(json, "domain", out String domain))
{
return Content(HttpStatusCode.BadRequest, "Please provide a valid domain.".AsApiMessageResult());
}