如何从生成的模式中获取简单的 graphql 变异查询?
How to get simple graphql mutation query from generated schema?
我正在使用 graphql 代码生成器来获取生成的文件:
npx graphql-codegen --config libs/codegen.yml
在这个文件中我有
export const AddDataDocument = gql`
mutation addData($input: AddDataInput!) {
addData(input: $input) {
id
}
}`;
这给了我 gql 文档。
在我的测试中(使用 supertest
),我在做:
const query = `
mutation addData($input: AddDataInput!) {
addData(input: $input) {
id
}
}`
request(app.getHttpServer())
.post('/graphql')
.send({
operationName: null,
query,
variables: { input: addDataInput }
})
我不想手动编写突变。我想使用我生成的架构文件。但不幸的是,定义了一个 gql,就像本文开头提到的 post.
是否可以生成一些东西用于我的 send()
?
request(app.getHttpServer())
.post('/graphql')
.send({
operationName: null,
query: AddDataDocument, // <-- but this is not working as it is a gql document
variables: { input: addDataInput }
})
codegen.yml
overwrite: true
schema: "apps/backend/src/app/**/*.graphql"
generates:
libs/generated/generated.ts:
documents: "libs/**/*.graphql"
plugins:
- "typescript"
- "typescript-operations"
- "typescript-react-apollo"
config:
withHooks: true
withComponent: false
withHOC: false
如果我没理解错的话,AddDataDocument
是一个 DocumentNode
对象(gql
调用的 return 值),您希望返回查询一个字符串。是吗?
如果是,试试这个:
import { print } from 'graphql'
...
request(app.getHttpServer())
.post('/graphql')
.send({
operationName: null,
query: print(AddDataDocument),
variables: { input: addDataInput }
})
几天前我遇到了类似的问题(问题的“如何将已解析的文档对象恢复为字符串”部分)。
创意的来源:
我正在使用 graphql 代码生成器来获取生成的文件:
npx graphql-codegen --config libs/codegen.yml
在这个文件中我有
export const AddDataDocument = gql`
mutation addData($input: AddDataInput!) {
addData(input: $input) {
id
}
}`;
这给了我 gql 文档。
在我的测试中(使用 supertest
),我在做:
const query = `
mutation addData($input: AddDataInput!) {
addData(input: $input) {
id
}
}`
request(app.getHttpServer())
.post('/graphql')
.send({
operationName: null,
query,
variables: { input: addDataInput }
})
我不想手动编写突变。我想使用我生成的架构文件。但不幸的是,定义了一个 gql,就像本文开头提到的 post.
是否可以生成一些东西用于我的 send()
?
request(app.getHttpServer())
.post('/graphql')
.send({
operationName: null,
query: AddDataDocument, // <-- but this is not working as it is a gql document
variables: { input: addDataInput }
})
codegen.yml
overwrite: true
schema: "apps/backend/src/app/**/*.graphql"
generates:
libs/generated/generated.ts:
documents: "libs/**/*.graphql"
plugins:
- "typescript"
- "typescript-operations"
- "typescript-react-apollo"
config:
withHooks: true
withComponent: false
withHOC: false
如果我没理解错的话,AddDataDocument
是一个 DocumentNode
对象(gql
调用的 return 值),您希望返回查询一个字符串。是吗?
如果是,试试这个:
import { print } from 'graphql'
...
request(app.getHttpServer())
.post('/graphql')
.send({
operationName: null,
query: print(AddDataDocument),
variables: { input: addDataInput }
})
几天前我遇到了类似的问题(问题的“如何将已解析的文档对象恢复为字符串”部分)。
创意的来源: