经过很长时间的查找任何文档后,我被迫向社区询问。
目前,我正在使用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!
}
我要在查询中添加的片段:
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 }"}
但获得了{strong> 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框架中调用它,我需要在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}}"}
答案 0 :(得分:0)
已解决
需要在同一查询中的方法调用主体{}
之前/之后传递片段;
{"query":"fragment pubInfo on Publisher {name licenseNumber contactNumber} {findPublisherByLicenseNumber(licenseNumber :\"UAE_DXB_CMH-971\") {...pubInfo}}"}