簡體   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