【问题标题】:GraphQL implementation Java [closed]GraphQL 实现 Java [关闭]
【发布时间】:2016-12-20 10:19:19
【问题描述】:

我有 5 个具有不同端点 URL 的 rest API(java),每个都有不同的请求、响应格式。所以我将它们组合为一个 API,并以一个常见的 JSON 复杂请求和响应作为键值对结构。

现在 T 最近发现了有关 GraphQL 并有兴趣将其满足我的要求, 我已经对此进行了分析,并想知道我可以在多大程度上实现我的一些问题:

1)我们可以在 GRAPHQL 中实现复杂的 rest API 服务(post)吗?(谷歌搜索时,只得到简单的 get 方法。也只有 node/javascript)

2)是否有任何基于 java 的 graphQL 实现框架?

【问题讨论】:

    标签: java rest graphql


    【解决方案1】:

    1)我们可以在 GRAPHQL 中实现复杂的 rest API 服务(post)吗?(谷歌搜索时,只有简单的 get 方法。也只有 node/javascript)

    既然您说您对 GraphQL 进行了分析,我假设通过“在 GraphQL 中实现复杂的 REST API 服务器 (POST)”,您的意思是如何通过 GraphQL 公开 REST API 的功能。是的,您可以通过使用 GraphQL 突变来做到这一点。在您的变异实现(解析函数)中,您将调用 REST POST 操作。

    swapi-graphql 是一个有趣的项目,它包装了Star Wars REST API

    2) 是否有任何基于 java 的 graphQL 实现框架?

    查看awesome-graphql 的 Java 部分。不过,Java GraphQL 库似乎没有得到很好的维护。

    【讨论】:

      【解决方案2】:

      问题 1) 在另一个答案中得到回答。

      问题2)Java实现:

      示例代码:

      public class HelloWorld {
          public static void main(String[] args) {
              GraphQLObjectType queryType = newObject()
                  .name("helloWorldQuery")
                  .field(newFieldDefinition()
                      .type(GraphQLString)
                      .name("hello")
                      .staticValue("world"))
                  .build();
      
              GraphQLSchema schema = GraphQLSchema.newSchema()
                  .query(queryType)
                  .build();
      
              GraphQL graphQL = GraphQL.newGraphQL(schema).build();
      
              Map<String, Object> result = graphQL.execute("{hello}").getData();
              System.out.println(result);
              // Prints: {hello=world}
          }
      }
      

      【讨论】:

      • 请不要只发布指向某个库的链接作为答案。至少演示库如何解决答案本身的问题。
      • 我对获得更多反对票的回答还有什么问题?
      • 兄弟,我支持你。上面的评论完全无关紧要。
      • 此响应显示客户端使用情况。问题是关于暴露服务器端端点。
      猜你喜欢
      • 2010-12-21
      • 2017-02-28
      • 2010-12-17
      • 1970-01-01
      • 1970-01-01
      • 2017-11-18
      • 2010-10-09
      • 2012-05-23
      • 1970-01-01
      相关资源
      最近更新 更多