生成动态 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。
我正在创建一个系统,其中没有。 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。