Я пытаюсь отправить запрос стороннему API, используя притворный клиент. Когда я проверяю тело запроса, оно выглядит следующим образом:
{
"requestTime": "2023-06-07T12:18:00.916+00:00"
}
но API принимает только формат даты гггг-ММ-дд'Т'мм:ЧЧ:сс.SSSZ, поэтому допустимое тело запроса будет выглядеть примерно так:
{
"requestTime": "2023-06-17T14:53:47.402Z"
}
Как настроить сериализацию формата даты в Feign Client?
Мои коды:
@FeignClient(value = "myfeign", url = "https://myfeign.com/")
public interface MyFeignClient {
@PostMapping(value = "/myfeign/", produces = APPLICATION_JSON_VALUE, consumes = APPLICATION_JSON_VALUE)
MyResponse sendRequest(MyRequest request);
}
И MyRequest генерируется из openapi-generator.
public class MyRequest {
@JsonProperty("requestTime")
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME)
private Date requestTime;
// getter...
}
Изменить: мой подход ниже не работает, поскольку объект запроса по-прежнему использует формат «2023-06-07T12:18:00.916+00:00». >
public class MyFeignConfig {
@Bean
public Encoder feignEncoder() {
HttpMessageConverter jacksonConverter = new MappingJackson2HttpMessageConverter(objectMapper());
HttpMessageConverters httpMessageConverters = new HttpMessageConverters(jacksonConverter);
ObjectFactory objectFactory = () -> httpMessageConverters;
return new SpringEncoder(objectFactory);
}
private ObjectMapper objectMapper() {
final String DATE_FORMAT = "yyyy-MM-dd'T'mm:HH:ss.SSSZ";
SimpleDateFormat dateFormat = new SimpleDateFormat((DATE_FORMAT));
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setDateFormat(dateFormat);
}
добавить конфигурацию в клиенте
@FeignClient(value = "myfeign", url = "https://myfeign.com/", configuration = "MyFeignConfig.class")
public interface MyFeignClient {
@PostMapping(value = "/myfeign/", produces = APPLICATION_JSON_VALUE, consumes = APPLICATION_JSON_VALUE)
MyResponse sendRequest(MyRequest request);
}
Подробнее здесь: https://stackoverflow.com/questions/764 ... ign-client
Как сериализовать дату тела запроса в определенном формате в Feign Client? ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение