【发布时间】:2019-10-02 05:52:29
【问题描述】:
在寻找任何文档的长时间会议之后,我不得不询问社区。p>
目前我正在从 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
到目前为止,我只提到了两个字段,但实际的 Schema 有很多。
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!
}
我要在 Query 中添加的片段:
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}}"}
【问题讨论】: