gpt4 book ai didi

java - 自定义 Json 错误消息

转载 作者:行者123 更新时间:2023-11-30 02:13:19 24 4
gpt4 key购买 nike

我正在尝试创建一个在我的 Controller 中返回游戏对象的 API。
如果逻辑成功,它会返回一个游戏对象,如果逻辑失败,我需要以 json 字符串的形式返回错误消息:{error: "You’ve gone"}。

我的问题是:我应该创建一个游戏类和错误类都实现的空接口(interface),这样我就可以在 API 中返回该接口(interface)类,还是有更简单的方法可以做到这一点?
本质上,当游戏运行时,我返回游戏对象,当游戏结束时,我需要返回错误对象。

有什么想法吗?

Controller :

@RequestMapping(method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE) 
public Game makeGuess(@RequestBody Guess guess){
return gameService.makeGuess(guess);
}

..Service 类执行一些返回 Game 对象的业务逻辑

游戏类(JavaBean)

public class Game{

private String gameId;

@JsonIgnore
private String word;

private StringBuilder currentWord;
private String status;
private int incorrect;

public Game(String gameId, String word) {
this.status = "";
this.gameId = gameId;
this.word = word;
currentWord = new StringBuilder();
for(int i = 0; i <word.length();i++){
currentWord.append("_");
}
}

public Game(){}

public String getId() {
return gameId;
}

public void setId(String gameId) {
this.gameId = gameId;
}

public int getIncorrect() {
return incorrect;
}

public void setIncorrect(int incorrect) {
this.incorrect = incorrect;
}

public void incrementWrong(){
this.incorrect++;
}

public StringBuilder getCurrentWord() {
return currentWord;
}

public void setCurrentWord(StringBuilder initialWord) {
this.currentWord = initialWord;
}

public String getStatus() {
return status;
}

public void setStatus(String status) {
this.status = status;
}

public String getWord() {
return word;
}

public void setWord(String word) {
this.word = word;
}

}

错误类(JavaBean)

package com.hangman.entity;

public class CustomError {

private String error;

public CustomError(String statusMessage) {
this.error = statusMessage;
}

public String getError() {
return error;
}

public void setError(String statusMessage) {
this.error = statusMessage;
}

}

最佳答案

您可以从服务/ Controller 中抛出异常。使用 @ControllerAdvice 注释创建一个 ExceptionHandler,它将捕获异常并返回错误对象,如下所示:

@ControllerAdvice
public class GameLostExceptionHandler {

@ExceptionHandler({GameLostException.class})
public ResponseEntity<CustomError> gameLostHandler(GameLostException e) {
return new ResponseEntity<>(new CustomError("Game lost"), HttpStatus.OK);
}
}

关于java - 自定义 Json 错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49453688/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com