假设我在Postman中发送一个完整的JSON对象,如下所示:
{
"student": [
{
"studentId" : "1234",
"feesPayment" : {
"amount" : 500.0,
"code" : "INR"
}
},
{
"studentId" : "5678",
"feesPayment" : {
"amount" : 500.0,
"code" : "INR"
}
}
]
}
那么状态代码是200 OK
但是现在,我发送相同的JSON对象,但在对象中进行了一些修改,如下面的相同POST-end-point:(只是删除feesPayment对象)
{
"student": [
{
"studentId" : "1234"
},
{
"studentId" : "5678"
}
]
}
然后状态代码是500内部服务器错误,原因很明显,错误看起来像下面的一个:
{
"timestamp" : "2021-09-02T17:07:31",
"status" : 500,
"error" : "Internal Server Error",
"message" : "Internal Server Error"
}
对于这个500状态代码,错误消息是“内部服务器错误”。所以我的问题是如何将此错误消息设置为“费用支付详细信息丢失”等其他内容,而不是默认的内部服务器错误消息?
欢迎使用Java和SpringBoot编写方法/代码。
请看看
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
在你的学生
类中,你可以写这样的东西:
public class Student {
@NotNull(message = "Error-2596-Fees Payment is required")
private FeesPayment feesPayment;
}
在RestController中,您将发送带有@Valid
注释的学生
有效负载
public ResponseEntity<String> sendStudent(@Valid Student studentToSend) { }
消息必须是常量。如果你看一下注释的代码,你会看到它是这样写的
javax.validation.constraints.NotBlank.message
作为默认值。您可以支持国际化并创建一个语言属性文件,然后像这样定义它:
javax.validation.constraints.NotBlank.message = "Payment is required"
另一件需要考虑的事情是,也许你希望把许多错误结合起来,并立即返回给用户。
对于这种情况,请查看例外处理程序
:
@RestControllerAdvice
public class ExceptionHandler extends ResponseEntityExceptionHandler{
@Override
protected ResponseEntity<Object> handleMethodArgumentNotValid(MethodArgumentNotValidException ex,
HttpHeaders headers, HttpStatus status, WebRequest request) {
Map<String, Object> responseBody = new LinkedHashMap<>();
List<String> allErrors = new ArrayList<>();
ex.getBindingResult().getAllErrors().forEach(error -> allErrors.add(error.getDefaultMessage()));
responseBody.put("Errors:", allErrors);
return new ResponseEntity<>(responseBody, headers, status);
}
}
我正在尝试为Web设置Firebase云消息传递。我成功地对其进行了正确初始化并获得了令牌: manifest.json与gcm_sender_id 我可以看到我在控制台中得到令牌,所以我试图验证它,并通过邮递员发送我的第一个通知-这里是留档。 发布网址:https://fcm.googleapis.com/v1/projects/PROJECTID/messages:发送授权:无授权 标题 Bo
我试图上传一个文件到我的服务器使用一个endpoint通过Spring公开。然而,当我试图通过邮递员测试api时,我得到当前请求不是一个多部分请求错误。我通过这个问题多部分异常:当前请求不是多部分请求,但仍然无法修复此问题。请帮助。提前感谢。 这是我的控制器: 我的服务: 正如您在下面看到的,我将文件作为表单数据发送,并且没有设置任何标题
我有一个包含大量参数的GET请求,每当我通过浏览器点击它时,它都可以正常工作,但是每当我尝试通过Postman点击相同的请求时,我都会得到-"414错误-Request URI Too大|nginx"。这是一些奇怪的事情,因为我通过浏览器获取结果。请帮助。
问题内容: 我正在考虑我的应用程序的解决方案。这是一种情况:我有一个类,该类的方法将ObjectA作为输入参数并调用几个小方法,这些方法中的每个方法都需要ObjectA的某些部分(它们不重叠,即需求和,需求等等)。 …)现在的问题是:鉴于一般的良好代码实践和性能,将ObjectA传递给这些方法中的每一个方法更好,以便它们可以自己提取所需的值,还是仅传递它们的值更好?我的意思是: 要么 感谢您的任何
问题内容: 我正在使用邮递员与elasticsearch服务器进行通信,当我尝试与我的elasticsearch服务器连接时,我在邮递员中收到错误消息。我哪里出问题了?这是我的代码。 我已尝试与服务器通信,但我一直收到此错误 问题答案: 好像您使用的是Elasticsearch 7.0版。由于Elasticsearch每个索引不再支持一种以上的映射类型,因此不再需要映射名称,并且此版本中不应提供该
我正在尝试使用Postman访问API,以使用基本身份验证获取响应,但当我提交数据时,它会给我带来可怕的400错误,这显然表明某些标头设置不正确。 以下是API信息: 作为回应,我应该得到一个JSON形式的加密令牌,而不是得到这个错误。 以下是邮差截图: 我错过了什么吗?