0
当API用户发送包含无效枚举的POST请求时,是否有一种很好的方法可以提供包含有效枚举的更有用的错误响应?ASP.NET Web API中的返回有效枚举错误响应
所以,如果我有一个样本类与枚举:
Public Class MyObject
Public Property MyProp As MyEnum
Public Enum MyEnum
Foo
Bar
End Enum
End Class
和动作过滤器:
Public Class ValidateModelAttribute
Inherits ActionFilterAttribute
Public Overrides Sub OnActionExecuting(actionContext As HttpActionContext)
If actionContext.ModelState.IsValid = False Then
actionContext.Response = actionContext.Request.CreateErrorResponse(HttpStatusCode.BadRequest, actionContext.ModelState)
End If
End Sub
End Class
如果用户发送类似:
{
"MyProp": "NotValid"
}
行动过滤器发送错误响应,如:
{
"Message": "The request is invalid.",
"ModelState": {
"value.MyProp.MyEnum": [
"Error converting value \"NotValid\" to type 'API.MyObject+MyEnum'. Path 'MyObject.MyEnum', line 29, position 32."
]
}
}
我希望能够发送一个更有用的错误响应,如:
{
"Message": "The request is invalid.",
"ModelState": {
"value.MyProp.MyEnum": [
"'NotValid' is not a valid value for MyProp; Valid values include 'Foo','Bar'"
]
}
}
我如何能胜任这个有什么想法?