Zaimplementowałem interfejs API REST przy użyciu aplikacji rozruchu sprężynowego. Wszystkie moje interfejsy API zwracają obecnie odpowiedź w formacie JSON dla każdej jednostki. Ta odpowiedź została wykorzystana przez inny serwer, który oczekuje, że wszystkie te odpowiedzi będą miały ten sam format JSON. Na przykład;Jak zmienić odpowiedź kontrolera w filtrze, aby struktura odpowiedzi była spójna w całym interfejsie API przy użyciu rozruchu sprężynowego
Wszystkie moje odpowiedzi powinny być uwzględnione w poniższej strukturze;
public class ResponseDto {
private Object data;
private int statusCode;
private String error;
private String message;
}
Obecnie wiosna-boot zwraca odpowiedzi o błędach w innym formacie. Jak to osiągnąć za pomocą filtra.
Format komunikatu o błędzie;
{
"timestamp" : 1426615606,
"exception" : "org.springframework.web.bind.MissingServletRequestParameterException",
"status" : 400,
"error" : "Bad Request",
"path" : "/welcome",
"message" : "Required String parameter 'name' is not present"
}
muszę zarówno błąd i powodzeniem wykonano odpowiedzi znajdują się w tej samej strukturze json całego mojego wniosku wiosna-boot
Jak dostaję komunikat o błędzie i kod błędu wewnątrz tej metody handlethrowable() – Achaius
@Achaius przepraszam pisałam przykładem złego, można dostać wiadomość od parametru do 'handleThrowable() 'metoda, a mianowicie' throwable' w tym przykładzie. Ale nie można ustalić kodu statusu, ponieważ wykorzystując tę strukturę, nadpisujesz dowolny kod stanu Wiosna określa wstępnie w zależności od typu wyjątku. Ale w większości przypadków będzie to 500, więc możesz podać kod statusu 500 z wiadomością o natywnych wyjątkach, a dla własnych wyjątków aplikacji możesz mieć oddzielną procedurę obsługi z różnymi kodami statusu. –
Czy istnieje sposób, aby to zrobić w servletFilter – Achaius