生成动态 GraphQL Schema

Generate dynamic GraphQL Schema

我正在创建一个系统,其中没有。 table 中的列数不固定。我会举例说明。

考虑一个人 table 有 3 列。

people
----------
id | name | email

这个 table 将暴露给 GraphQL API,我可以查询 table。在我的系统中,用户将能够向人员 table 添加自定义列。假设他们添加了一个国籍栏。当他们这样做时,国籍在 API 中将不可用,因为它未在架构中定义。

那么我怎样才能让我的模式动态化,允许用户查询人 table 他们添加的每个额外列?

这不是您问题的答案,而是 建议 因为在 SQL 中创建动态列看起来不合适对我来说是个好主意。我认为您应该重新考虑您的数据库结构,而不是考虑如何创建动态模式。

与其在 Person table 中添加新列,不如为自定义列设置不同的 table,例如 create person_columns table like

person_columns
----------
id | people_id | column_name | column_value

因此,对于每个人,您都可以拥有多个列及其相应的值,并且您不必担心动态创建 graphQL 模式。 (根据您的要求,您可以向 person_columns table 添加更多列以获得更多控制)

我可以查询 information_schema table 或一个字段 table 并获取人员 table 的额外字段,然后使用 GraphQLObjectType 构建我的架构而不是使用 SDL。