如何在 Django/Elasticsearch/MySQL 后端之上构建 GraphQL API?

How to build a GraphQL API on top of a Django/Elasticsearch/MySQL backend?

我正在研究开发 GraphQL API。我有一个 django/elasticsearch/mysql 后端,我正在弄清楚 GraphQL 如何适应这张图片。

我阅读了有关 graphene-django 项目的信息,但它似乎与 Django ORM 紧密结合,所以我想知道 elasticsearch 是否适合这个秘诀。

我才刚刚开始这项研究,所以这个问题有可能毫无意义。

关于如何执行此操作的任何线索?

graphene 是来自 python 的通用 GraphQL 服务器实现。 使用石墨烯,您可以构建图形数据的表示并从任何地方(MySQL、ElasticSearch、Mongo 等)查询它——每个字段的值基本上由一个解析器函数解析,该函数可以从任何地方读取数据需要。

graphene-django 只是石墨烯的一个扩展,它会自动包装 django ORM 并让您轻松地将 django ORM 对象作为模式的一部分公开,而无需经历定义 re-defining 所有对象和ORM 模型中已定义的字段。

但是,它并不限制您只能使用 django ORM。 您的 GraphQL 模式中可以有许多关系对象,一些对象可以针对 django ORM 工作,而其他对象可以从 ElasticSearch 或您存储数据的任何其他地方读取。

我建议您观看这个简短的视频,作为关于如何开始编写 GraphQL 服务器的介绍 - https://www.youtube.com/watch?v=UBGzsb2UkeY 然后前往 http://graphene-python.org 并查看文档。

一些尝试开始于 https://pypi.org/project/graphene-elastic/

然而,仍然是阿尔法。