ControllerBaseConflict()包含诸如返回ConflictResult派生自 的对象(表示 HTTP 409 响应)之类的方法StatusCodeResult。生成的响应正文具有内容类型application/problem+json,如下所示:
{
"type": "https://tools.ietf.org/html/rfc7231#section-6.5.8",
"title": "Conflict",
"status": 409,
"traceId": "0HLO99QHFC9QI:00000001"
}
没有用于 HTTP 410 响应的内置方法/类,因此我创建了一个:
[DefaultStatusCode(410)]
public class GoneResult : StatusCodeResult
{
public GoneResult() : base(410)
{}
}
...
public static class ControllerBaseExtensions
{
public static GoneResult Gone(this ControllerBase controllerBase) // this doesn't give all the problem+JSON attributes
{
return new GoneResult();
}
}
然而,这给出了
{
"type": "about:blank",
"status": 410
}
即,type值不同并且缺少title和字段。traceId
我还想为 HTTP 500 响应创建一个自定义类,其中包含message带有错误消息的字段。我尝试过 return ,这给了我与我的方法StatusCode(StatusCodes.Status500InternalServerError)相同的最小响应;我也尝试过 return ,这给了我错误消息,但将响应格式设置为.application/problem+jsonGone()StatusCode(StatusCodes.Status500InternalServerError, message)text/plain
PIPIONE
智慧大石
相关分类