Joi2GQL:輕鬆將 Joi 模式轉換為 GraphQL 資料型別。
Posted: Tue Dec 03, 2024 9:00 am
“嘿,無論如何,你可以在回覆中包含供應商的電話號碼嗎?”,一條 Slack 訊息中寫道。 “嘿,我們只使用了 4 個屬性,你可以讓回應更加……精簡嗎?”,閱讀另一則訊息。
這是維護任何 API 時的典型情況,您將擁有許多具有不同 尼日利亞電話號碼數據 需求的客戶,所有客戶都會強加他們的需求並將故事固定在不斷增長的積壓工作中。最終,在 XO,我們預測 GraphQL 可以緩解許多此類問題,因此我和我的團隊的任務是充實 POC 並回答這個非常簡單的問題。 “我們可以從使用 GraphQL 中受益嗎?”,快速而骯髒的答案,是的。一路走來,我們取得了一些成果!
問題
啟動和運行 GraphQL 伺服器最繁瑣的部分之一是定義代表您的產品或功能的資料類型。
Joi2GQL 讓我們可以採用現有的模型和反應合約,輕鬆將它們轉換為 GraphQL 資料類型,從而節省我們的工程時間,並使 GraphQL 的採用更加輕鬆。
喬伊
Joi 是一種物件模式描述語言和 JavaScript 物件驗證器。它的功能非常豐富,維護良好,並且擁有活躍的社區。幸運的是,我們將響應合約、模型和文檔驗證模式(在寫入 PG Store 之前使用)存儲在一個集中模組中,其中很多都作為Felicity 構造函數公開,這是我們自己的Wes編寫的工具泰勒.我不會詳細介紹 Felicity 建構函式是什麼,但簡而言之,它提供了能夠使用Joi模式描述語言和驗證器進行驗證的物件建構函式以及範例結構。該函式庫提供了一個 getter 函數,它將傳回底層的 Joi 模式。
這是維護任何 API 時的典型情況,您將擁有許多具有不同 尼日利亞電話號碼數據 需求的客戶,所有客戶都會強加他們的需求並將故事固定在不斷增長的積壓工作中。最終,在 XO,我們預測 GraphQL 可以緩解許多此類問題,因此我和我的團隊的任務是充實 POC 並回答這個非常簡單的問題。 “我們可以從使用 GraphQL 中受益嗎?”,快速而骯髒的答案,是的。一路走來,我們取得了一些成果!
問題
啟動和運行 GraphQL 伺服器最繁瑣的部分之一是定義代表您的產品或功能的資料類型。
Joi2GQL 讓我們可以採用現有的模型和反應合約,輕鬆將它們轉換為 GraphQL 資料類型,從而節省我們的工程時間,並使 GraphQL 的採用更加輕鬆。
喬伊
Joi 是一種物件模式描述語言和 JavaScript 物件驗證器。它的功能非常豐富,維護良好,並且擁有活躍的社區。幸運的是,我們將響應合約、模型和文檔驗證模式(在寫入 PG Store 之前使用)存儲在一個集中模組中,其中很多都作為Felicity 構造函數公開,這是我們自己的Wes編寫的工具泰勒.我不會詳細介紹 Felicity 建構函式是什麼,但簡而言之,它提供了能夠使用Joi模式描述語言和驗證器進行驗證的物件建構函式以及範例結構。該函式庫提供了一個 getter 函數,它將傳回底層的 Joi 模式。