【问题标题】:Usage of GraphQL for Neo4j and Ontotext GraphDB simultaneouslyNeo4j 和 Ontotext GraphDB 同时使用 GraphQL
【发布时间】:2017-07-27 01:52:45
【问题描述】:

我有两个不同数据库引擎(Neo4j 和 Ontotext GraphDB)的两个实例,我想在 GraphQL 中为这些数据库创建通用接口。

我想用 Java 用 GraphQL 创建端点。

我应该使用 graphql-java 库还是您推荐其他东西来合并不同数据库引擎的使用?

我正在为这类问题寻找最灵活的解决方案。

【问题讨论】:

    标签: java neo4j graphql graphdb graphql-java


    【解决方案1】:

    GraphQL 被设计为服务层之上的一个薄层。它完全独立于您正在使用的数据存储。

    您要求合并对您的数据库的访问。这实际上是您的服务层的任务(这是简单的 java 代码。例如可以由 Spring 支持)。然后,您的 API 层将使用您的服务。 GraphQL 可以是您的 API 层或其中的一部分。

    您应该考虑使用 REST 或 GraphQL。但是拥有两个不同的数据库并不是决定性因素,因为这不是任何一个都关心的问题。你对他们两个都很好。阅读:GraphQL vs REST

    如果您决定使用 GraphQL 和 Java。 graphql-java 是您唯一的选择(而且是一个不错的选择)。

    【讨论】:

    • 其他用于 Java 的 graphql 库怎么样?:github.com/chentsulin/awesome-graphql#lib-java 有什么值得使用的吗?
    • 它们实际上不是 GraphQL 实现,而只是向您的 graphql-java 添加功能,如注释支持等。坚持使用 graphql-java 并根据需要添加其他库,你会没事的 :)
    • 由于某种原因,Java 相关的库在 awesome-graphql 上被严重歪曲,PR 已经腐烂了好几个月。查看 github.com/graphql-java/awesome-graphql-java 了解 Java 生态系统的最新视图。
    • 顺便说一句,答案很漂亮。太多的库、文章和帖子表明 GraphQL 直接转换为数据库查询的糟糕设计,否定了 GraphQL 的一半好处和良好实践。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-23
    • 1970-01-01
    • 2019-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多