Объектные мутации в GraphQL -- graphql поле с участием graphql-js пол Связанный проблема

Object mutations in graphQL


0
vote

проблема

русский

Вот мой объект EventAttendee.

 <код> const EventAttendee = new GraphQLInputObjectType({   name: 'EventAttendee',   fields: () => ({     attendeeName: {type: GraphQLString},     personalizedDateSelection: {type: new GraphQLInputObjectType()}   }) });   

Свойство

PersonalizateDElectionlection - это динамическая, а его свойства не известны сейчас. Итак, в этом случае я дал GraphQlintObjectType () .

Но это дает ошибку, указав EVERTATHEDENDEE.PERSOLATIONDATEDATESELECTELY TYPE должен быть выводным типом.

Как определить ObjectType, свойства которого не известны?

Английский оригинал

Here is my EventAttendee Object.

const EventAttendee = new GraphQLInputObjectType({   name: 'EventAttendee',   fields: () => ({     attendeeName: {type: GraphQLString},     personalizedDateSelection: {type: new GraphQLInputObjectType()}   }) }); 

The personalizedDateSelection property is an dynamic one and its properties are not known now. So, In this case, I have given GraphQLInputObjectType().

But it gives an error stating EventAttendee.personalizedDateSelection field type must be Output Type.

How to define an ObjectType whose properties are not known ?

</div
     

Список ответов

0
 
vote

Я считаю, что вы хотите определить <код> InputObjectType , а не <код> ObjectType как указано.

С помощью этого сказано, что вы можете сделать, это объявить <код> personalizedDateSelection как строку на данный момент, а затем адаптировать его по мере необходимости с пользовательским входным объектом, как только вы знаете, что он должен содержать. <Код> GraphQLInputObjectType используется для определения new входных объектов, это не тип se se .

 

I believe you want to define an InputObjectType and not an ObjectType as stated.

With that said, what you can do is to declare personalizedDateSelection as a string for now, and then later adapt it as needed with a custom input object, once you know what it should contain. GraphQLInputObjectType is used to define new input object types, it isn't a type per se.

</div
 
 
0
 
vote
vote
Лучший ответ
 

Я хотел персонализированныеdeselection имущество tourcattendeendee , чтобы быть объектом, но я не знаю этих свойств заранее, но я уверен, что это тип объекта.

Таким образом, объявляющий это как GraphQLSCalartype был правильным способом сделать это. Ознакомьтесь с Graphqlscalartype . Но нам нужно создать пользовательский скалярный тип. Все скалярные типы могут иметь тип ввода. Так вот моя реализация:

 <код> const PersonalizedDateSelection = new GraphQLScalarType({     name: 'PersonalizedDateSelection',     serialize: value => {       return value;     },     parseValue: value => {       return value;     },     parseLiteral: ast => {       console.log("coming in parseLiteral");       console.log(ast);       let value = {};       if (ast.kind !== Kind.OBJECT) {         throw new GraphQLError("Query error: Can only parse object but got a: " + ast.kind, [ast]);       }       ast.fields.forEach(field => {         value[field.name.value] = parseJSONLiteral(field.value);       });        return value;     } });   
 

I wanted personalizedDateSelection property of EventAttendee to be of objectType but I dont know those properties in advance, but I am sure that it is of Object type.

So declaring this as GraphQLScalarType was the correct way to do it. Check out about GraphQLScalarType. But we need to create a custom scalar type. All scalar types can be of input type. So here is my implementation:

const PersonalizedDateSelection = new GraphQLScalarType({     name: 'PersonalizedDateSelection',     serialize: value => {       return value;     },     parseValue: value => {       return value;     },     parseLiteral: ast => {       console.log("coming in parseLiteral");       console.log(ast);       let value = {};       if (ast.kind !== Kind.OBJECT) {         throw new GraphQLError("Query error: Can only parse object but got a: " + ast.kind, [ast]);       }       ast.fields.forEach(field => {         value[field.name.value] = parseJSONLiteral(field.value);       });        return value;     } }); 
</div
 
 

Связанный проблема

1  AWS Amplify: вход переменных содержит имя поля, которое не определено для типа объекта ввода  ( Aws amplify the variables input contains a field name that is not defined for i ) 
Я не понимаю, что происходит здесь. Это моя схема: <код> type MonthResume @model @auth(rules: [{allow: owner, identityClaim: "sub"}]){ id: ID! incom...

0  Переключенный блог GATSBY от .md в .mdx - теперь шаблон блога-пост не возвращает заголовок поста от .mdx Front Mate  ( Switched gatsby blog from md to mdx now blog post template doesnt return a ) 
Сводка Я преобразовал свой блог GATSBY с использованием <код> .md к <код> .mdx с использованием <код> gatsby-plugin-mdx после того, как https Как преобр...

0  Как экспортировать определения поля в graphql  ( How to export field definitions in graphql ) 
Как я могу экспортировать определения поля в graphql? Например, скажем, у меня есть SCHEMA.GRAPHQL: <код> type Query { comment: String! } Могу ли ...

-1  Извлечение свойств отношений с графеном-Django и GraphQL из базы данных графика (Neo4j)  ( Retrieve relationship properties with graphene django and graphql from a graph ) 
Я пытаюсь создать простое приложение (для создания API GraphQL с помощью Django и Python). Это идет хорошо, но я застрял с 1 проблемой, и я понятия не имею, к...

0  Cookie из другого источника  ( Cookie from a different source ) 
Учитывая следующий Resolver для мутации: <код> async signin(parent, { name, password }, ctx, info) { // Check if there is a user with the name c...

2  Как написать Upsert Mutation Query (вставка или обновление) в AWS Dynamodb Appsync Resolver  ( How to write upsert mutation queryinsert or update in aws dynamodb appsync res ) 
Я работаю над dynamodb с помощью appsync-запросов graphql. У меня есть одна таблица Dynamodb, в которой имя пользователя является разделением клавиши (хэш-к...

0  Mutration GraphQl «Невозможно установить заголовки после отправки клиенту»  ( Graphql mutation cannot set headers after they are sent to the client ) 
Я реализую мутацию входа в систему GraphQL для аутентификации учетных данных для входа пользователя. Мутация проверяет пароль с BCRYPT, затем отправляет файл ...

1  Apollo Server очень медленный даже с легкими запросами  ( Apollo server is very slow even with light queries ) 
Я знаю, что GraphQL может стать медленнее с большими наборами данных, но то, что у меня есть массив около 60 предметов. Например. В простом запросе, я принесу...

-2  graphql на .NET. Какие-нибудь мысли?  ( Graphql on net any thoughts ) 
Мне нужно проверить graphql на среде .NET. Это должно быть на .NET окружающей среды. Есть какие-либо намеки, где я могу начать? У меня уже есть официальные ...

3  Как решить ошибку 405 Метод не допускается, для сервера Django GraphQL и Axios React Axios в переднем углу  ( How to solve error 405 method not allowed for django graphql server and react a ) 
Привет, у меня трудно решить эту проблему, у меня есть django <код> graphql сервера, который работает для моего локального компьютера <код> 8000 Когда я зап...

4  CountRont Cache с GraphQL?  ( Cloudfront cache with graphql ) 
У моей компании мы используем GraphQL для производственных приложений, но только для частных Ressources. Настоящие публичные API - API для отдыха с сервисом...

0  Это в порядке, чтобы иметь DataLoader и REST API кэширования?  ( Is it okay to have dataloader and rest api caching ) 
Я подговариваю сервер GraphQL, чтобы обернуть несколько восстановительных API. Некоторые из API, которые я буду интегрировать, это третья сторона и некоторые,...

0  Graphql На компьютерах где запрос  ( Graphql some params in where query ) 
Как создать запрос с некоторыми параметрами в детали, где запрос GraphQL. У меня есть запрос с одним параметром, и мне нужно добавлять некоторые параметры д...

0  <Мутация /> рефиртери "неизвестная директива" _ "."  ( Mutation refetchqueries unknown directive ) 
Я использую <код> react-apollo и <код> <Mutation /> компонент с <код> refetchQueries update_task <код> export const UPDATE_TASK = gql` mutation updat...

1  Обновите локальное состояние при создании и удалении ассоциаций в клиенте Apollo  ( Update local state when creating and deleting associations in apollo client ) 
У меня есть объекты типа <код> student и <код> team в моей схеме и таблице <код> student_team , которые сохраняют записи их отношений. Чтобы управлять этим ...

Связанный проблема

1  AWS Amplify: вход переменных содержит имя поля, которое не определено для типа объекта ввода 
0  Переключенный блог GATSBY от .md в .mdx - теперь шаблон блога-пост не возвращает заголовок поста от .mdx Front Mate 
0  Как экспортировать определения поля в graphql 
-1  Извлечение свойств отношений с графеном-Django и GraphQL из базы данных графика (Neo4j) 
0  Cookie из другого источника 
2  Как написать Upsert Mutation Query (вставка или обновление) в AWS Dynamodb Appsync Resolver 
0  Mutration GraphQl «Невозможно установить заголовки после отправки клиенту» 
1  Apollo Server очень медленный даже с легкими запросами 
-2  graphql на .NET. Какие-нибудь мысли? 
3  Как решить ошибку 405 Метод не допускается, для сервера Django GraphQL и Axios React Axios в переднем углу 
4  CountRont Cache с GraphQL? 
0  Это в порядке, чтобы иметь DataLoader и REST API кэширования? 
0  Graphql На компьютерах где запрос 
0  <Мутация /> рефиртери "неизвестная директива" _ "." 
1  Обновите локальное состояние при создании и удалении ассоциаций в клиенте Apollo 



© 2021 www.qaru.top All Rights Reserved. Q&A House все права защищены


Licensed under cc by-sa 3.0 with attribution required.