繁体   English   中英

生成动态 GraphQL Schema

[英]Generate dynamic GraphQL Schema

我正在创建一个没有的系统。 表中的列数不固定。 我会用一个例子来解释。

考虑一个有 3 列的人员表。

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

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

那么我怎样才能使我的模式动态化,以允许用户使用他们添加的每个额外列来查询 people 表?

我可以查询 information_schema 表或字段表并获取 people 表的额外字段,然后使用 GraphQLObjectType 构建我的模式而不是使用 SDL。

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

与其在Person表中添加新列,不如为自定义列创建不同的表,例如创建person_columns

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM