簡體   English   中英

GraphQL:查詢未能驗證

[英]GraphQL : Query failed to validate

我正在一個簡單的 java 程序中測試 graph-spqr 庫。

這是我到目前為止所做的:

public class GraphQLResolver {
    
    private String status;
    private Integer price;
    
    @GraphQLMutation(name="updateStatusOrder")
    public void updateStatusOrder(@GraphQLArgument(name="id") String orderId,@GraphQLArgument(name="status") String status) {
       //to do
    }
    
    @GraphQLQuery(name="getStatus")
    public String getStatus(@GraphQLArgument(name="id") String orderId) {
        this.status="Example of status";
        return this.status;
    }

}

然后,我在 main 方法中調用構建 GraphQL 方法

public class Main {

    public static void main(String[] args) {

        GraphQLSchema schema = new GraphQLSchemaGenerator()
        .withOperationsFromSingleton(new GraphQLResolver()) 
        .generate(); //done ;)

        GraphQL graphQL = new GraphQL.Builder(schema).build();  
        
        ExecutionResult result = null;
        result = graphQL.execute("{getstatus(id:123){status}}");
    }

}

我有錯誤:查詢無法驗證:'{status(id:123){status}}'

怎么了?

我想正確的查詢應該是:

{
   getstatus(id:"123")
}

原因如下:

  1. 您將 id 參數定義為 String ,因此需要在參數值周圍使用雙引號。

  2. getStatus查詢被定義為返回一個String ,它是一個標量但不是 GraphQL 的對象類型。 因此,您無需進一步定義要返回的字段,因為標量沒有可供您選擇的任何字段。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM