#graphql #apollo #apollo-server #graphql-java
#graphql #apollo #apollo-сервер #graphql-java
Вопрос:
Я разрабатываю службу GraphQL и рассмотрел входные объекты и рекомендации относительно их использования для мутаций. Имеет ли смысл также использовать входные объекты в качестве параметров для запроса, если количество параметров велико (допустим, около 10 для обсуждения)? Почему? Почему бы и нет?
Кроме того, если имеет смысл использовать входные объекты для запросов, что следует учитывать, чтобы выяснить, является ли это правильным решением для меня?
пример запроса:
retrieveData(
ids: [ID!]
codes: [String!]
countries: [String!]
types: [String!]
business: [String!]
locations: [ID!]
region: Region!
limit: Int = 50
offset: Int = 0
sortBy: SortBy
version: Int
): Response!```
Комментарии:
1. нет, количество не является причиной, сходство является ключевым (например, разбивка на страницы — предел смещение)…
retrieveData
похоже, нет определенного типа… свойства выглядят как отношения, встроенные в type …where
-можно использовать подобную фильтрацию2. Я намеренно переименовал запрос, чтобы сделать его универсальным. @xadm Вы правы, что это параметры, используемые для фильтрации возвращаемых данных. Все параметры до местоположений используются для фильтрации и являются частью объекта ответа. Они могут быть объединены во входной объект, такой как dataFilter, и у нас может быть другой входной объект для разбивки на страницы. Каковы были бы недостатки такого подхода?
3. свойства / фильтры по-прежнему «выглядят как отношения, встроенные в тип», имя не имеет значения… никаких недостатков