viv*_*una 9 c# api asp.net-web-api asp.net-core asp.net-core-webapi
我正在Asp.Net Core 3.1中开发API,我下面有一个POST方法(内容类型是application/JSON),我故意将无效的JSON传递给响应,并且响应也非常清晰。但我的问题是我可以进行更改以返回响应吗
国家/地区 ID 为必填字段
对于这个特殊情况。请告诉我是否可以完成,否则,我也同意这个响应(因为这个响应首先检查内容类型是否是有效的 JSON 也是有效的)。
方法:
public ActionResult ValidateFields(ValidateFieldsRequest validateFieldsRequest)
{
Run Code Online (Sandbox Code Playgroud)
请求类:
public class ValidateFieldsRequest
{
//string currencyCode, int countryId, string fieldName, string fieldValue
[Required]
public string currencyCode { get; set; }
[Required]
[RegularExpression("^[1-9]\\d*$", ErrorMessage = "Invalid fieldName.")]
public int countryId { get; set; }
[Required]
[MinLength(1, ErrorMessage = "At least one field required")]
public List<Field> fields { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
要求:
{
"currencyCode": "RUB",
"countryId": ,
"fields": [{
"fieldName": "BIC or Bank Code",
"fieldValue": "12345678901234567"
},
{
"fieldName": "Beneficiary Account Number",
"fieldValue": "123456"
}
]
}
Run Code Online (Sandbox Code Playgroud)
回复:
{
"type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
"title": "One or more validation errors occurred.",
"status": 400,
"traceId": "|6a64d7ad-495850db788356cd.",
"errors": {
"$.countryId": [
"',' is an invalid start of a value. Path: $.countryId | LineNumber: 2 | BytePositionInLine: 28."
]
}
}
Run Code Online (Sandbox Code Playgroud)
小智 1
[RegularExpression("^[1-9]\\d*$", ErrorMessage = "Invalid fieldName.")]
public int countryId { get; set; }
Run Code Online (Sandbox Code Playgroud)
上面设置了错误信息,但实际上你发送的json不能这样发送,你应该设置
"countryId": null ,
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
41609 次 |
| 最近记录: |