1 / 1 / 0
Регистрация: 11.01.2020
Сообщений: 15
|
|||||||||||
1 | |||||||||||
Аргумент graphql запроса не преобразуется в слайс структур14.08.2022, 13:35. Показов 774. Ответов 4
Добрый день.
для обработки запросов в формате graphql использую библиотеку github.com/graphql-go/graphql Аргумент запроса filters , принимает объект. поэтому аргумент определен , как input Все поля структур с большой буквы, т.е. экспортируемые.
Отправляю graphql запрос : Код
http://localhost:8000/graphql?query={product(product_id:18810,filters:[{code:"category",id:19},{code:"brand",id:39}]){product_id,name}} Код
{"data":{"product":null}} Смотрю вывод в консоль , видно что аргумент filters не преобразовался в []Filter . хотя соответствует структуре golang Код
->filters: [] filtersOk: false ->print p.Args[filters]: [map[code:category id:19] map[code:brand id:39]] ->Name: Book queryType Сокращенный вариант кода, который воспроизводит проблему: https://play.golang.com/p/xrW__QRZ0k7
0
|
14.08.2022, 13:35 | |
Ответы с готовыми решениями:
4
Отправка запроса GraphQL с использованием фреймворка Yew Задание нескольких экземпляров структур как аргумент в методе Функция, возвращает квадрат аргумента, если аргумент число; хвост списка, если аргумент список; иначе сам аргумент Работа с Graphql graphql mutation |
14.08.2022, 16:37 | 2 |
Я не знаю что такое graphql, но мне кажется, что в тексте json-подобного запроса, отправляемого на сервер, запрос должен содержать валидный json. На знание истины не претендую, но что-то подсказывает, что имена ключей надо брать в кавычки итд
0
|
Модератор
|
||||||
14.08.2022, 16:53 | 3 | |||||
Я тоже ничего не знаю, но
Ну, вы поняли.
1
|
4544 / 2738 / 486
Регистрация: 28.04.2012
Сообщений: 8,648
|
||||||
14.08.2022, 20:17 | 4 | |||||
Сообщение было отмечено logthumb как решение
Решение
Это не json, а graphql.
Добавлено через 12 минут Он и не должен преобразовываться. Откуда graphql должен узнать, что его нужно преобразовать и именно в []Filter? Добавлено через 35 минут logthumb, нужно самому руками разгребать Args и преобразовывать в нужную структуру. Во всяком случае, не припомню, чтобы эта библиотека умела сама как-то маппить запрос на Go'шные структуры.
1
|
1 / 1 / 0
Регистрация: 11.01.2020
Сообщений: 15
|
|
14.08.2022, 21:42 [ТС] | 5 |
Curry , безусловно вы правы насчет условия.
я привел сокращенный вариант кода, чтобы не выкладывать портянку. допустил логическую ошибку, которую вы верно подметили. Но сути это не меняем , так как видно из вывода переменной filters, то в ней пустой слайс . Код
->filters: [] filtersOk: false korvin_ , спасибо огромное за ответ. Ваш ответ это единственный выход из ситуации!
0
|
14.08.2022, 21:42 | |
14.08.2022, 21:42 | |
Помогаю со студенческими работами здесь
5
MeteorJS и GraphQL GraphQL: подскажите по теории GraphQL validation error Работа с Graphql запросами Ввести аргумент x, если аргумент попадает в область допустимых значений, вычислить значение выражения Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Интеграция Arduino и ChatGPT: Практическое руководство
InfoMaster 16.01.2025
В современную эпоху технологических инноваций интеграция искусственного интеллекта с микроконтроллерами открывает принципиально новые возможности для создания умных устройств и автоматизированных. . .
|
Как создать робота, управляемого ChatGPT
InfoMaster 16.01.2025
Концепция проекта
В современную эпоху искусственный интеллект и робототехника становятся все более доступными для энтузиастов и разработчиков. Создание роботизированной руки, управляемой ChatGPT,. . .
|
Как создать ChatGPT бота в Telegram на Python
InfoMaster 16.01.2025
В современном мире технологии искусственного интеллекта становятся все более доступными для разработчиков, открывая новые возможности для создания умных и интерактивных приложений. Одним из самых. . .
|
Машинное обучение с помощью Python
InfoMaster 16.01.2025
Машинное обучение стало неотъемлемой частью современных технологий, позволяя компьютерам учиться на основе данных и принимать решения без явного программирования. В сочетании с языком. . .
|
Использование связки C# и PHP в корпоративной разработке и микросервисной архитектуре
InfoMaster 16.01.2025
Введение в интеграцию C# и PHP
В современной корпоративной разработке все чаще возникает потребность в создании гибких и масштабируемых решений, способных эффективно решать широкий спектр. . .
|
Как использовать Kerio дома для управления сетью и пользователями
InfoMaster 16.01.2025
Использование технологий для улучшения повседневной жизни стало неотъемлемой частью современного быта. Одной из таких технологий является Kerio — мощный инструмент для управления сетью и. . .
|
Есть ли будущее у DVD и Blu-ray?
InfoMaster 16.01.2025
В эпоху стремительного развития цифровых технологий и повсеместного распространения потоковых сервисов вопрос о будущем физических носителей информации становится все более актуальным. Особенно остро. . .
|
Как проводить научные вычисления на Python
InfoMaster 15.01.2025
Python стал одним из наиболее востребованных языков программирования в области научных вычислений благодаря своей простоте, гибкости и обширной экосистеме специализированных библиотек. Научные. . .
|
Создание игры типа Minecraft на PyGame/Python: пошаговое руководство
InfoMaster 15.01.2025
В данном руководстве мы рассмотрим процесс создания игры в стиле Minecraft с использованием библиотеки PyGame на языке программирования Python. Этот проект идеально подходит как для начинающих. . .
|
Как создать свою первую игру в стиле Doom на Unreal Engine
InfoMaster 15.01.2025
Разработка шутера от первого лица в стиле классического Doom представляет собой увлекательное путешествие в мир игрового программирования, где сочетаются творческий подход и технические навыки. . . .
|
Параллельное программирование: основные технологии и принципы
InfoMaster 15.01.2025
Введение в параллельное программирование
Параллельное программирование представляет собой фундаментальный подход к разработке программного обеспечения, который позволяет одновременно выполнять. . .
|
Как написать микросервис на C# с Kafka, MediatR, Redis и GitLab CI/CD
InfoMaster 15.01.2025
В современной разработке программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот подход позволяет разделить сложную систему. . .
|