Загрузка файла с помощью SPQR Graphql

Я использую весеннюю загрузку и библиотеку spqr graphql. Мне нужно загрузить файл (ы) через graphql. Я не знаю, какой тип объекта ожидать в службе, и я предполагаю, что это даже не поддерживается.

Кто-нибудь пробовал это? Любой совет?

Благодарю.

0 ответов

(Предполагая, что вы используете SPQR Spring Starter) В настоящее время загрузка / загрузка двоичных файлов в SPQR неудобна, но не невозможна. Вам нужно будет заменить предоставленный контроллер своим собственным и решить, как вы хотите получать запросы и двоичные файлы, и как вы хотите отправлять результаты и двоичные файлы обратно. Чтобы переопределить контроллер, просто предоставьте свой собственный bean-компонентGraphQLController тип.

Лучше всего реализовать спецификацию многостраничного запроса GraphQL, которая благодаря Spring не должна быть слишком сложной.

Кстати, вы всегда можете получить необработанный запрос, введя @GraphQLRootContext DefaultGlobalContext<NativeWebRequest> requestкак аргумент метода. Оттуда вы можете получить потоки ввода и вывода.

Вы также можете подключить нестандартный ArgumentInjector который может ввести что-то более точное, если вы хотите.

В ближайшем будущем стартер будет поддерживать спецификацию многостраничных запросов GraphQL из коробки.

Если вы не используете стартер, ситуация схожа в том, что вы как бы самостоятельно реализуете транспорт для двоичных файлов и запросов.

Но с учетом всего сказанного, как правило, лучше всего полностью обрабатывать двоичные файлы вне GraphQL (отправлять только URL-адреса загрузки и тому подобное с использованием GraphQL), поэтому я настоятельно рекомендую этот подход, если это возможно. Причина в том, что требование дополнительных спецификаций нарушает стандартную совместимость с большинством клиентов.

Другие вопросы по тегам