gpt4 book ai didi

java - 从 Java 在 GraphQL 查询中添加片段

转载 作者:行者123 更新时间:2023-12-02 05:40:22 24 4
gpt4 key购买 nike

经过长时间寻找任何文档后,我被迫询问社区。

目前我正在从 Java 代码进行查询(也尝试使用 Postman 进行相同的操作)来查询 GraphQL:

请求:

{"query":"{findPublisherByLicenseNumber(licenseNumber : \"UAE_DXB_CMH-971\") {name licenseNumber}}"}

回应:

{
"data": {
"findPublisherByLicenseNumber": {
"name": "Cantaloupe Media House",
"licenseNumber": "UAE_DXB_CMH-971"
}
}
}

这是我在后端进行的查询端点:http://mg-api.com/mg-graphQL

到目前为止,我只提到了两个字段,但实际的架构有很多。

type Publisher {
ID: ID!
name: String!
licenseNumber: String!
address: String
contactNumber: String
mobileNumber: String
areaCode: Int!
...
... #few more fields
books: [Book]

}

extend type Query {
findAllPublishers: [Publisher]!
findPublisherByLicenseNumber(licenseNumber: String!) : Publisher!

}

我要在查询中添加的片段:

fragment publisherInfo on Publisher {
ID
name
licenseNumber
address
contactNumber
areaCode
}

尝试过这样的

{"query":"{findPublisherByLicenseNumber(licenseNumber : \"UAE_DXB_CMH-971\") {...publisherInfo}}", "fragment" : "fragment publisherInfo on Publisher {ID name licenseNumber address contactNumber areaCode }"}

但得到了 ValidationError message :<强>Undefined fragment publisherInfo

{
"data": null,
"errors": [
{
"message": "Validation error of type UndefinedFragment: Undefined fragment pubInfo @ 'findPublisherByLicenseNumber'",
"locations": [
{
"line": 1,
"column": 67,
"sourceName": null
}
],
"description": "Undefined fragment pubInfo",
"validationErrorType": "UndefinedFragment",
"queryPath": [
"findPublisherByLicenseNumber"
],
"errorType": "ValidationError",
"path": null,
"extensions": null
}
]
}

当我尝试使用 GraphiQL 实现相同目标时 UI 然后它就可以工作了。

我还没有开始考虑从 UI 框架中调用它,我需要在 Vanilla JS/Angular/React/Vue 等中使用 graphql.js。

到目前为止,我希望从我的后端代码逻辑中利用它,因为 UI 和我的 graphql 服务之间有一个中间件。

我发现的唯一一件事是没有得到答复,如果得到答复,则完全以模糊的方式:S.O Question

感谢任何帮助。

已解决

需要在方法之前传递片段;

{"query":"fragment pubInfo on Publisher {name licenseNumber contactNumber} {findPublisherByLicenseNumber(licenseNumber :\"UAE_DXB_CMH-971\") {...pubInfo}}"}

最佳答案

已解决

需要在同一查询中的方法调用主体{}之前/之后传递片段;

{"query":"fragment pubInfo on Publisher {name licenseNumber contactNumber} {findPublisherByLicenseNumber(licenseNumber :\"UAE_DXB_CMH-971\") {...pubInfo}}"}

关于java - 从 Java 在 GraphQL 查询中添加片段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56143361/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com