Всем привет!
Вчера столкнулась с интересной проблемой с Feign клиентами.
Проблема заключается в следующем. Если мы захотим отправить MultipartFile и список каких-нибудь объектов через feign клиент, то под капотом подставится feign.form.multipart.SingleParameterWriter, в котором используется хард-код для заголовка content-type, со значением "text/plain".
Таким образом получается, если у нас в контроллере прописано что-то в стиле:
То мы получим ошибку 500 от сервера с сообщением, что он не принимает text/plain, а ожидает application/json, как и прописано в контроллере.
Такой вот баг на высоком уровне) Автор открытого issue, предложил пока в качестве решения создавать кастомный JsonFormWriter и SpringFormEncoder. Подробнее можно посмотреть по ссылке.
Попробовала сегодня, вещь рабочая, так что если кто столкнется, можно пользоваться 👍
Вчера столкнулась с интересной проблемой с Feign клиентами.
Проблема заключается в следующем. Если мы захотим отправить MultipartFile и список каких-нибудь объектов через feign клиент, то под капотом подставится feign.form.multipart.SingleParameterWriter, в котором используется хард-код для заголовка content-type, со значением "text/plain".
Таким образом получается, если у нас в контроллере прописано что-то в стиле:
@RequestMapping(
method = RequestMethod.POST,
value = "/v1/files/bulk",
produces = { "application/json" },
consumes = "multipart/form-data"
)
ResponseEntity<Files> saveFiles(
@Parameter(name = "metadata", description = "Array of file attributes", required = true) @Valid @RequestPart(value = "metadata", required = true) List<@Valid Metadata> metadata,
@Parameter(name = "files", description = "Array of Files") @RequestPart(value = "files", required = false) List<MultipartFile> files
);
То мы получим ошибку 500 от сервера с сообщением, что он не принимает text/plain, а ожидает application/json, как и прописано в контроллере.
Такой вот баг на высоком уровне) Автор открытого issue, предложил пока в качестве решения создавать кастомный JsonFormWriter и SpringFormEncoder. Подробнее можно посмотреть по ссылке.
Попробовала сегодня, вещь рабочая, так что если кто столкнется, можно пользоваться 👍
GitHub
Wrong content-type for multipart requests on JSON parts (text/plain instead of application/json) · Issue #2813 · OpenFeign/feign
I have the following request mapping defined which includes 2 parts: metadata: POJO (application/json) files: multipart @RequestMapping( method = RequestMethod.POST, value = "/v1/files/bulk&qu...
🔥8👍1
Всем привет!)
Давно не писала тут, а все потому что почему-то решила, что следующим своим постом буду рассказывать, как дописала свой курс.
Но к сожалению, этого пока не случилось😅 Дизайн приложения (структуру базы данных) придумывала только неделю.
Сейчас вовсю пишу 2й модуль, в нем по плану у меня теория про транзакции (ACID и уровни изоляции), подключение к базе данных, настройка миграции и дальше поиск по фильтрам с использованием Criteria API.
Сейчас я на втором шаге, скоро буду прописывать задание сделать схему базы данных, которая понадобится.
Но почти со всем что-то идёт не по плану. Записывая решение к домашнему заданию, часто вылезают баги, проскальзывают слова паразиты, какие-то части приходится перезаписывать, монтировать😰
При подключении базы данных, например, на автомате добавила зависимость spring-data-jpa последней версии и возник конфликт версий, потому что spring-boot-parent оказался зависимостью ниже. Пришлось смотреть дерево зависимостей в Maven и искать виновника конфликта🔎
Не помогает и что на работе начался завал, поэтому пока не уверена, что и к Новому году его допишу, но пока целюсь к этому времени🐾
Давно не писала тут, а все потому что почему-то решила, что следующим своим постом буду рассказывать, как дописала свой курс.
Но к сожалению, этого пока не случилось
Сейчас вовсю пишу 2й модуль, в нем по плану у меня теория про транзакции (ACID и уровни изоляции), подключение к базе данных, настройка миграции и дальше поиск по фильтрам с использованием Criteria API.
Сейчас я на втором шаге, скоро буду прописывать задание сделать схему базы данных, которая понадобится.
Но почти со всем что-то идёт не по плану. Записывая решение к домашнему заданию, часто вылезают баги, проскальзывают слова паразиты, какие-то части приходится перезаписывать, монтировать
При подключении базы данных, например, на автомате добавила зависимость spring-data-jpa последней версии и возник конфликт версий, потому что spring-boot-parent оказался зависимостью ниже. Пришлось смотреть дерево зависимостей в Maven и искать виновника конфликта🔎
Не помогает и что на работе начался завал, поэтому пока не уверена, что и к Новому году его допишу, но пока целюсь к этому времени
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9🔥8👍5
Всем привет!
С наступающим всех Новым годом!
Желаю вам исполнения всех желаний и всего самого хорошего в новом году!
Хочу порекомендовать интересную книгу, которую начала недавно читать - Building Microservices, автор Sam Newman (русский вариант). Очень нравится, здесь про грамотное разделение монолита на микросервисы и в целом, как лучше организовать их взаимодействие.
Свой курс доделала до середины примерно, так что скоро наверняка смогу поделиться тем, что получилось.
Кстати, был у меня мок-собес по систем дизайну на днях. Первый блин оказался комом, но вынесла уроки, что нужно главное не торопиться и учиться думать вслух. Этот навык надеюсь у меня прокачается при записывании домашних заданий для курса.
Еще начала онлайн курс от Гарварда по Computer Science, чтобы разложить некоторые базовые вещи по полочкам. Знаю, что есть в переводе на ютюбе, так что можно поискать и посмотреть, если есть интерес.
Еще раз всех с Наступающим и до встречи в Новом году!😘 🎄
С наступающим всех Новым годом!
Желаю вам исполнения всех желаний и всего самого хорошего в новом году!
Хочу порекомендовать интересную книгу, которую начала недавно читать - Building Microservices, автор Sam Newman (русский вариант). Очень нравится, здесь про грамотное разделение монолита на микросервисы и в целом, как лучше организовать их взаимодействие.
Свой курс доделала до середины примерно, так что скоро наверняка смогу поделиться тем, что получилось.
Кстати, был у меня мок-собес по систем дизайну на днях. Первый блин оказался комом, но вынесла уроки, что нужно главное не торопиться и учиться думать вслух. Этот навык надеюсь у меня прокачается при записывании домашних заданий для курса.
Еще начала онлайн курс от Гарварда по Computer Science, чтобы разложить некоторые базовые вещи по полочкам. Знаю, что есть в переводе на ютюбе, так что можно поискать и посмотреть, если есть интерес.
Еще раз всех с Наступающим и до встречи в Новом году!
Please open Telegram to view this post
VIEW IN TELEGRAM
Литрес
Создание микросервисов (pdf+epub) — Сэм Ньюмен | Литрес
По мере того как организации переходят от монолитных приложений к небольшим автономным микросервисам, распределенные системы становятся все более детализированными. Второе дополненное издание предлаг…
❤8🔥7👍5🎄2