2017-03-23 25 views
1

有誰知道Java GraphQL實現(graphql-java)是否支持複雜的過濾器。如果我理解正確的這篇文章:對複雜過濾器的GraphQL-Java支持

https://www.graph.cool/docs/tutorials/designing-powerful-apis-with-graphql-query-parameters-aing7uech3/

參考實現包括過濾參數是一個內置在支持嵌套條件複雜的過濾器參數。但是,這些示例不適用於graphql-java示例。

這是一個簡單的例子,我用graphql的Java播放:2.3.0:

GraphQLType employeeType = newObject() 
      .name("Employee") 
      .field(newFieldDefinition() 
        .name("name") 
        .type(Scalars.GraphQLString) 
        ) 
      .field(newFieldDefinition() 
        .name("age") 
        .type(Scalars.GraphQLInt) 
        ) 
      .field(newFieldDefinition() 
        .name("active") 
        .type(Scalars.GraphQLBoolean) 
        ) 
      .build(); 

    GraphQLObjectType companyType = newObject() 
      .name("Company") 
      .field(newFieldDefinition() 
        .name("name") 
        .type(Scalars.GraphQLString) 
        ) 
      .field(newFieldDefinition() 
        .name("employees") 
        .type(new GraphQLList(employeeType)) 
        .argument(newArgument() 
          .name("name") 
          .type(Scalars.GraphQLString) 
          .build() 
        ) 
        .argument(newArgument() 
          .name("age") 
          .type(Scalars.GraphQLInt) 
          .build() 
        ) 
        .argument(newArgument() 
          .name("active") 
          .type(Scalars.GraphQLBoolean) 
          .build() 
        ) 
        .dataFetcher(new EmployeeFetcher()) 
        ) 
      .build(); 

    GraphQLObjectType companyListType = newObject() 
      .name("Companies") 
      .field(newFieldDefinition() 
        .name("companies") 
        .type(new GraphQLList(companyType)) 
        .argument(newArgument() 
           .name("name") 
           .type(Scalars.GraphQLString) 
           .build() 
          ) 
        .dataFetcher(new CompanyFetcher()) 
        ) 
      .build(); 


    GraphQLSchema schema = GraphQLSchema.newSchema() 
      .query(companyListType) 
      .build(); 

    GraphQL graphQL = new GraphQL(schema); 
+0

hi @Shahin Askari,你有沒有發現任何可以幫助解決這個問題的東西?任何建議/鏈接非常感謝。 – cingulata

+0

不,我們沒有。根據我最初的研究,它不存在,我想在這裏證實,kaqqao似乎同意。鑑於此以及其他限制,我們將在稍後的項目中選擇返回到GraphQL進行另一次審查。 –

回答

1

什麼你所談論的是Graph.cool的擴展,而不是參考實現。你當然可以用graphql-java來構建類似的東西,但是沒有什麼比它更好的了,因爲這個lib的目標只是實現規範。