Size: a a a

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

2020 November 30

М

Максим in GraphQL — русскоговорящее сообщество
type Input {
  name:String!,
 value:String!
}

mutation App($inputs: [Input]) {
   application(
     where: { product_id: "1234" }
     data: {
       external_application_id: "mgtju34"
       insured_object: {
         inputs: $inputs
         type: "company"
       }) {
       id
     }
   }
источник

𝘂

𝘂𝘅𝗻𝗮𝗺𝗲... in GraphQL — русскоговорящее сообщество
Максим
type Input {
  name:String!,
 value:String!
}

mutation App($inputs: [Input]) {
   application(
     where: { product_id: "1234" }
     data: {
       external_application_id: "mgtju34"
       insured_object: {
         inputs: $inputs
         type: "company"
       }) {
       id
     }
   }
невалидный запрос так-то.
чуть поправил
type Input {
 name: String!
 value: String!
}

mutation App($inputs: [Input]) {
 application(
   where: { product_id: "1234" }
   data: {
     external_application_id: "mgtju34"
     insured_object: { inputs: $inputs, type: "company" }
   }
 ) {
   id
 }
}
источник

𝘂

𝘂𝘅𝗻𝗮𝗺𝗲... in GraphQL — русскоговорящее сообщество
Максим
type Input {
  name:String!,
 value:String!
}

mutation App($inputs: [Input]) {
   application(
     where: { product_id: "1234" }
     data: {
       external_application_id: "mgtju34"
       insured_object: {
         inputs: $inputs
         type: "company"
       }) {
       id
     }
   }
const data = await client.mutate({
               mutation: gql`
                   type Input {
                       name: String!
                       value: String!
                   }

                   mutation App($inputs: [Input]) {
                       application(
                           where: { product_id: "1234" }
                           data: {
                               external_application_id: "mgtju34"
                               insured_object: { inputs: $inputs, type: "company" }
                           }
                       ) {
                           id
                       }
                   }
               `,
               variables: {
                   inputs: [{name: "name", value: "value"}]
               }
           });
источник

𝘂

𝘂𝘅𝗻𝗮𝗺𝗲... in GraphQL — русскоговорящее сообщество
ну или скрином
источник

М

Максим in GraphQL — русскоговорящее сообщество
Спасибо тебе, дядя бог
источник

М

Максим in GraphQL — русскоговорящее сообщество
Выручил очень
источник

М

Максим in GraphQL — русскоговорящее сообщество
Работает как положено
источник

P@

Pavel @nodkz in GraphQL — русскоговорящее сообщество
Aleksandr Bukhalo
@nodkz помнишь я писал тебе про graphql-compose для nestjs? В общем тот ещё геморрой сделать для nestjs что-то подобное. Попробую объяснить. В GraphQL мы исходим из принципов, что чем больше связность тем лучше. Схема должная получаться нелинейной и получается что-то вроде связей many-many. А в NestJS архитектура линейная, что хорошо ложится на rest, но не на GraphQL. Под линейностью я имею ввиду абстракцию в виде модулей, вот тут на схеме понятно https://docs.nestjs.com/assets/Modules_1.png Получается что у нас огромное количество модулей связано друг с другом и часто не в виде дерева. Начинаются проблемы с разрешением цикличных зависимостей и другие приколы. В конечном счёте в одном из проектов проще было выкинуть нест в пользу graphql-compose и потерять разве что в статической типизации.

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

Моим решением было остановиться впиливать nestjs. И попробовать его впилить позже еще раз, как только первые сервисы поедут на настоящий ddd.

А пока свой ioc/di т.к. волосатость схем важнее.

Как я сейчас вижу, можно их поженить с нестом, но только всю обертку контроллеров и гардов надо как-то хитро крутить через свои декораторы. Или вообше выбрасывать.

И на начальном уровне можно юзать только сервисы, энтити и реджистри.

Про линейность контроллеров прям хорошо подметил 👍
источник

AB

Aleksandr Bukhalo in GraphQL — русскоговорящее сообщество
Pavel @nodkz
У меня похожая проблема с жинитьбой была.

Моим решением было остановиться впиливать nestjs. И попробовать его впилить позже еще раз, как только первые сервисы поедут на настоящий ddd.

А пока свой ioc/di т.к. волосатость схем важнее.

Как я сейчас вижу, можно их поженить с нестом, но только всю обертку контроллеров и гардов надо как-то хитро крутить через свои декораторы. Или вообше выбрасывать.

И на начальном уровне можно юзать только сервисы, энтити и реджистри.

Про линейность контроллеров прям хорошо подметил 👍
А что у тебя за свой DI? Может показать какие-то примеры структуры и какие задачи им решаешь? Интересно прям
источник

P@

Pavel @nodkz in GraphQL — русскоговорящее сообщество
Aleksandr Bukhalo
А что у тебя за свой DI? Может показать какие-то примеры структуры и какие задачи им решаешь? Интересно прям
Там поделка из двух уровней - персистентный и сервисный. У меня даже язык его не поворачивается назвать полноценным DI. Но для грейсфул шатдауна достаточно.

Полноценный DI сейчас пробуем на инвесифай
источник

P@

Pavel @nodkz in GraphQL — русскоговорящее сообщество
Вместо DI  двухуровневый костыль стоит с OPERATION_LEVEL (запросы и таски), PERSISTENT_LAYER (базы данных и прочие хранилки).
источник

P@

Pavel @nodkz in GraphQL — русскоговорящее сообщество
А и да, логгер в несте очень слабый ещё был
источник

P@

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

AB

Aleksandr Bukhalo in GraphQL — русскоговорящее сообщество
Pavel @nodkz
А и да, логгер в несте очень слабый ещё был
+
источник

P@

Pavel @nodkz in GraphQL — русскоговорящее сообщество
Переслано от Pavel @nodkz
В своем лесопеде у нас такая посадочная сервера
источник

AB

Aleksandr Bukhalo in GraphQL — русскоговорящее сообщество
Pavel @nodkz
Переслано от Pavel @nodkz
В своем лесопеде у нас такая посадочная сервера
миленько)
источник

ОЛ

Олег Линьков... in GraphQL — русскоговорящее сообщество
а почему бы не использовать молекулер или loopback? Много велосипедов отпадает и просто масштабировать докером
источник

АТ

Алексей Трофимов... in GraphQL — русскоговорящее сообщество
Олег Линьков
а почему бы не использовать молекулер или loopback? Много велосипедов отпадает и просто масштабировать докером
loopback 4 !!! ??? И что прямо юзаете в проде?
источник

ОЛ

Олег Линьков... in GraphQL — русскоговорящее сообщество
Алексей Трофимов
loopback 4 !!! ??? И что прямо юзаете в проде?
Молекулер в проде использую, loopback не срослось по историческим причинам. Но ibm же использует :)
источник
2020 December 01

NP

Nikita Polevoy in GraphQL — русскоговорящее сообщество
Господа работающие с graphQl,
Как быть если необходимо дергать useQuery по условию в рамках одного компонента (react), т.е. что-то вроде
if(query)
const data = useQuery(query)
?
источник