[英]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.