Size: a a a

GraphQL — русскоговорящее сообщество

2021 May 01

O

Oleg in GraphQL — русскоговорящее сообщество
Просто данные из ответа на запрос а будут параметром запроса б.. или параметром директивы
источник

АГ

Алексей Гринько... in GraphQL — русскоговорящее сообщество
Второй запрос дёргает ElasticSearch с овердофига записей, поэтому для начала делаем более простую проверку запросом А
источник

🐟🐠

🐟Andrey 🐠Lukin in GraphQL — русскоговорящее сообщество
Первое что в голову приходит использовать lazyQuery на втором запросе
источник

KS

Kirill Skomarovskiy in GraphQL — русскоговорящее сообщество
Очень сложно. Легче было бы делать одним запросом. При отрицательном ответе на запрос A - отправить ответ и не делать запрос на elastic search. При положительном - дергать. Что вы и хотите сделать но через клиент. Правильно понимаю что это запросы на один ресурс?
источник

O

Oleg in GraphQL — русскоговорящее сообщество
Ну да.. у меня такой же вопрос.. бэкенд куда запросы идут один? И он уже делегирует запрос в эластик? Тогда все равно надо все в один запрос компоновать.. а бэкенд уже сделает как ты и описал.. эластик дернется  только когда подзапрос А вернёт что для этого нужно
источник
2021 May 02

АГ

Алексей Гринько... in GraphQL — русскоговорящее сообщество
Ох ребята, столько вопросов... хотел бы я ответить, но знаю о беке не много.. знаю что все крутится на aws lambda. Несколько разных микросервисов, для фронта сделан отдельный bff эндпоинт чтоб забирать все что надо.
Запрос А делает запрос на существование имени по правилу exact match. Если имя существует,  то все блочим. Если по точном соответствию ничего не найдено,  то делаем запрос по правилу fuzzy match и плюс все синонимы (Миша,Михаил,Мишка...)

У меня бы вопрос скорее вопрос именно про фронт, как это все корректно описать чтоб Б в зависимости от данных из А. Просто хотел понять какие бест практики на этот счет
источник

KS

Kirill Skomarovskiy in GraphQL — русскоговорящее сообщество
Делай через skip. Не нужно воротить логику через effect.

const resA = useQuery(GQL_A);
const resB = useQuery(GQL_B, { skip: getSkip(resA) });
источник

АГ

Алексей Гринько... in GraphQL — русскоговорящее сообщество
Спасибо, мне тоже кажется что через эффект как-то не то...
источник

A

Alex in GraphQL — русскоговорящее сообщество
Всем привет, ищу ответ на вопрос много гуглил
источник

P@

Pavel @nodkz in GraphQL — русскоговорящее сообщество
/trust
источник

S

Shieldy in GraphQL — русскоговорящее сообщество
Принято!
источник

A

Alex in GraphQL — русскоговорящее сообщество
Как создать тип наподобие Query в GraphQL-Java?
Ребят кто работал с GraphQL. Можно ли создать объект типа Query только с другим именем?
Наш стек:

Spring Boot
java
com.graphql-java-kickstart:graphql-spring-boot-starter

Вот так выглядит документация и схема сейчас:
Query

employeeSearch(searchRequest: SearchInput): EmployeeSearchResult
vehicleSearch(searchRequest: SearchInput): VehicleSearchResult


Хочется структурировать запросы в документации и избавиться от длинных имен запросов

на верхнем уровне документация
Vehicle
Employee


на уровне Vehicle
Vehicle

vehcile(id: ID!): Vehicle

search(searchRequest: SearchInput): VehicleSearchResult

create(input: CreateVehicleInput): Vehicle


на уровне Employee
Employee


employee(id: ID!): Employee

search(searchRequest: SearchInput): EmployeeSearchResult

create(input: CreateEmployeeInput): Employee


То есть идея создать тип который резолвился бы на верхнем уровне как мутации и запросы
type Vehicle {
 
 employee(id: ID!): Employee
 
 search(searchRequest: SearchInput): VehicleSearchResult
 
 create(input: CreateVehicleInput): Vehicle
}
источник

В

Валерий in GraphQL — русскоговорящее сообщество
подскажите можно на несколько запросов назначить один распознаватель
источник

A

Alex in GraphQL — русскоговорящее сообщество
В java да
источник

В

Валерий in GraphQL — русскоговорящее сообщество
т.е. чисто языковой конструкцией, а в js ?
источник

A

Alex in GraphQL — русскоговорящее сообщество
Не пробовал, не подскажу в js как. В java просто ищутся методы распознавателях с соответствующей сигнатурой и вызываются, не важно они в одном файле или во многих
источник

В

Валерий in GraphQL — русскоговорящее сообщество
СПАСИБО
источник

P@

Pavel @nodkz in GraphQL — русскоговорящее сообщество
А просто создать поле на типе Query не получается?

Типа GraphQLObjectType({
 name: 'Query'
 fields: {
   employee: {
     type: EmployeeNamespace,
     resolve: () => ({}) // возвращаем не пустышку, чтоб графкуэль провалился в выполнение вложенных полей
   }
 }
})
источник

P@

Pavel @nodkz in GraphQL — русскоговорящее сообщество
Это пример под ноду, для джавы думаю похожее решение.
источник

P@

Pavel @nodkz in GraphQL — русскоговорящее сообщество
Что хочется добавить, что тип Query никак не отличается от любого другого OutputObject-типа
источник