我需要帮助弄清楚与Apollo客户端一起使用的GraphQL标记。文档并没有超出最基本的突变用例。
我已经在GraphQl Playground上成功地使用了突变(在只有电子邮件和全变量的情况下)(如果有帮助,您可以在这里找到它并测试它,查看模式等):https://prisma2-graphql-yoga-shield.now.sh/Playground)
mutation {
createOneProposal(
data: {
email: "fake@gmail.com"
name: "Sean"
types: {
create: {
model: PURCHASE
name: "e-commerce"
cost: 600
services: {
create: [
{ service: "Responsive web design" }
{ service: "Another service!" }
{ service: "And yet another service!" }
]
}
}
}
}
) {
created_at
proposal_id
types {
cost
model
name
type_id
services {
service
service_id
}
}
}
}
结果产生的:
{
"data": {
"createOneProposal": {
"created_at": "2020-02-27T21:28:53.256Z",
"proposal_id": 35,
"types": [
{
"cost": 600,
"model": "PURCHASE",
"name": "e-commerce",
"type_id": 6,
"services": [
{
"service": "Responsive web design",
"service_id": 10
},
{
"service": "Another service!",
"service_id": 11
},
{
"service": "And yet another service!",
"service_id": 12
}
]
}
]
}
}
}
我对gql标记的最初设计:
export const NEW_PROPOSAL = gql`
mutation createOneProposal(
$email: String!
$name: String
$cost: Int
$model: Model
$service: Service
) {
createOneProposal(
email: $email
name: $name
cost: $cost
model: $model
service: $service
) {
created_at
proposal_id
types {
services {
service_id
}
}
}
}
`;
{"errors":[
{"Variable "$service" cannot be non-input type `"Service`".","locations":[{"line":1,"column":97}]},
{"Unknown argument "email" on field "createOneProposal`" of type "Mutation`".","locations":[{"line":2,"column":21}]},
{"Unknown argument "name" on field "createOneProposal`" of type "Mutation`".","locations":[{"line":2,"column":36}]},
{"Unknown argument"cost" on field "createOneProposal\" of type "Mutation`".","locations":[{"line":2,"column":49}]},
{"Unknown argument "model" on field "createOneProposal`" of type "Mutation`".","locations":[{"line":2,"column":62}]},
{"Unknown argument "service" on field "createOneProposal`" of type "Mutation`".","locations":[{"line":2,"column":77}]},
{"Field "createOneProposal" argument "data" of type "ProposalCreateInput!`" is required, but it was not provided.","locations":[{"line":2,"column":3}]}]}
我的模式,如果有帮助的话:
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "mysql"
url = env("MYSQL_URL_PRISMA2")
}
model Post {
content String @default("")
created_at DateTime @default(now())
post_id Int @default(autoincrement()) @id
published Boolean @default(false)
published_at DateTime?
title String @default("")
author User
}
model Profile {
bio String?
profile_id Int @default(autoincrement()) @id
user_id User
}
model Proposal {
email String @unique
name String?
proposal_id Int @default(autoincrement()) @id
created_at DateTime @default(now())
types Type[]
}
model Type {
cost Int?
name String?
model Model? @default(SUBSCRIPTION)
services Service[]
type_id Int @default(autoincrement()) @id
proposal_id Proposal
}
model Service {
service_id Int @default(autoincrement()) @id
service String?
type_id Type
}
model User {
email String @default("") @unique
name String @default("")
password String @default("")
role Role @default(USER)
user_id Int @default(autoincrement()) @id
posts Post[]
profiles Profile[]
}
enum Role {
USER ADMIN
}
enum Model {
SUBSCRIPTION PURCHASE CUSTOM
}
GraphQL类型分为输入类型或输出类型。输入类型用于变量定义或参数定义之类的输入。输出类型用于键入字段,字段构成实际响应。某些类型,如标量和枚举,可以用作输入或输出。但是,对于对象,有输出对象类型(有时仅指对象类型或对象)和输入对象类型。
service
是一个输出类型,因此不能在需要输入类型的地方使用它(在本例中是变量定义)。检查Prisma生成的架构,以确定要使用的适当类型。
在后端,我进行了调试,并收到了请求,它根据客户机上设置的令牌查找用户,但随后什么也不做,只在我试图从应用程序发送时返回给我400,在graphiql浏览器上。 我错过了什么?非常感谢。
客户端设计 客户端设计是CAT系统设计中最为核心的一个环节,客户端要求是做到API简单、高可靠性能、无论在任何场景下客户端都不能影响各业务服务的性能(监控只是公司核心业务流程一个旁路环节)。以下客户端设计以及细节均以java客户端为例子。 设计架构 CAT客户端是java,客户端在收集端数据方面使用ThreadLocal,是线程本地变量,也可以称之为线程本地存储。线程局部变量(ThreadLoca
我在服务器上使用GraphQL和mongoose。 当发生验证错误时,GraphQL突变发送状态代码为200的响应。在客户端,响应如下所示: 我想使用阿波罗客户端突变promise的功能访问验证错误。类似: 如何做到这一点?
我尝试执行Graphql客户端查询。遗憾的是,我找不到任何关于如何使用动态图QL客户端进行简单变异的文档或示例。这是文件https://quarkus.io/guides/smallrye-graphql-client. {0}..{4} 是可变占位符。有人知道如何使用DynamicGraphlQlClient执行这个查询吗? 谢谢
问题内容: 我正在寻找GraphQL 的Java 客户端 库。两者均用于Java中的服务器到服务器通信。没有android,没有javascript …只是java。Apollo是最接近的答案,似乎仅适用于Android,而不适用于纯Java应用程序。有很多关于用Java构建服务器的例子,没有关于客户端的例子。任何想法?谢谢! 问题答案: 有几个可用的客户,都采用不同的方法。 Apollo And
我尝试使用以下库来使用graphql订阅: GraphQL-服务器端订阅 客户端的订阅-传输-WS 因此,在传递给用于筛选数据的函数的回调中,我没有获取请求者参数的变量对象和上下文对象。 库的安装版本如下所示: