Я разрабатываю API в Asp. Net Core 3.1, у меня есть метод POST ниже (тип содержимого application/JSON
), я намеренно передаю неверный JSON в ответ, и ответ также очень Чисто. Но здесь мой вопрос: могу ли я внести изменения, чтобы вернуть ответ, например,
countryId - это обязательное поле
для этого конкретного случая. Пожалуйста, дайте мне знать, можно ли это сделать, в противном случае меня тоже устраивает этот ответ (потому что этот ответ также действителен для проверки, является ли тип содержимого допустимым JSON или нет).
Метод:
public ActionResult ValidateFields(ValidateFieldsRequest validateFieldsRequest)
{
Класс запроса:
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; }
}
Запрос:
{
"currencyCode": "RUB",
"countryId": ,
"fields": [{
"fieldName": "BIC or Bank Code",
"fieldValue": "12345678901234567"
},
{
"fieldName": "Beneficiary Account Number",
"fieldValue": "123456"
}
]
}
Ответ:
{
"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."
]
}
}