ASP.NET Core 3.1 采用 POSTed JSON(用于在我刚刚起步的 Web API 中通过 SCIM v2 创建用户)并将其模型绑定到我的 C# 请求数据类CreateUserRequest
,就像一个冠军。如果 JSON 中有错误,它会产生很好的基于 ProblemDetails 的错误。
例如,如果用户的姓氏(又名姓氏)丢失(不应该是因为我[Require]
的那个属性),那么响应 JSON 是:-
{
"type": "https://www.rfc-editor.org/rfc/rfc7231#section-6.5.1",
"title": "One or more validation errors occurred.",
"status": 400,
"traceId": "|dbd3da85-4991c45298582047.",
"errors": {
"Name.LastName": [
"The LastName field is required.",
"The field LastName must be a string with a minimum length of 1 and a maximum length of 100."
]
}
}
这是结果,ValidationProblemDetails
它适用于大多数用途,但不幸的是它不适合 SCIM,它需要不同的 JSON 格式,在此处描述。
例如,SCIM 错误看起来像这样:-
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:Error"],
"scimType":"mutability"
"detail":"Attribute 'id' is readOnly",
"status": "400"
}
如何在 ASP.NET Core 3.1 Web API 中替换ProblemDetails
并ValidationProblemDetails
用其他东西(在这种情况下是与 SCIM 兼容的东西)?