Я пишу простой метод get для получения отзывов из URL API.API возвращает данные json как String.Возвращение Mono<Object>
выдает ошибку.Ниже приведен HTTP-ответ.
{
"timestamp": "2019-02-05T11:25:33.510+0000",
"path": "Some URL",
"status": 500,
"error": "Internal Server Error",
"message": "Content type 'text/plain;charset=utf-8' not supported for bodyType=java.lang.Object"
}
Я обнаружил, что ответ является строкой.Так что возвращение Mono<String>
работает нормально.Но я хочу вернуть Mono<MyObject>
из ответа API.
Как мне преобразовать Mono<String>
в Mono<MyObject>
?Я не смог найти никаких решений в Google, кроме Как получить строку из Mono в реактивной Java .
Ниже приведен мой класс обслуживания:
@Service
public class DealerRaterService {
WebClient client = WebClient.create();
String reviewBaseUrl = "Some URL";
public Mono<Object> getReviews(String pageId, String accessToken) {
String reviewUrl = reviewBaseUrl + pageId + "?accessToken=" + accessToken;
return client.get().uri(reviewUrl).retrieve().bodyToMono(Object.class);
}
}
Редактировать: Добавление класса моего контроллера:
@RestController
@RequestMapping("/path1")
public class DealerRaterController {
@Autowired
DealerRaterService service;
@RequestMapping("/path2")
public Mono<Object> fetchReview(@RequestParam("pageid") String pageId,
@RequestParam("accesstoken") String accessToken) throws ParseException {
return service.getReviews(pageId, accessToken);
}
}
Дайте мне знать, что вам нужна дополнительная информация.