簡體   English   中英

如何將 GraphQL 服務器添加到預先存在的 SQL 數據庫中?

[英]How to add a GraphQL server to a pre-existing SQL Database?

我已經在主機 IP 上創建了一個 mySQL 數據庫,但現在希望使用 GraphQL 來簡化前端的查詢。 我知道如何從頭開始設置 GraphQL 服務器,但不確定如何在后端訪問我預先存在的表,以及在何處定義模式以使用它們。 我如何從 GraphQL 服務器連接到數據庫?

Prisma 是我考慮過的一個選項,但該服務不允許連接到具有預先存在數據的 mySQL 數據庫。

謝謝您的幫助!

如果您想要一種相對簡單/便宜的方式來公開整個數據庫的 CRUD 操作,Prisma 和其他 ORM 是一個不錯的選擇。

如果您只需要公開數據的特定方面或只需要快速開始迭代,您可以在服務器級別定義 GraphQL API 架構,並根據需要編寫連接到數據庫的解析器。 您的架構不需要反映您的整個數據庫,而只需反映您希望向客戶公開的數據。

根據我使用 GraphQL API 的經驗,我發現手動編寫查詢模式並根據需要創建解析器來為較小的應用程序提供服務既更快又更容易維護。

您可以使用像https://github.com/mysqljs/mysql這樣的 SQL 客戶端來連接您的數據庫。 然后,您為架構編寫的解析器將查詢您的數據庫以獲取滿足客戶端請求所需的任何數據,即使它跨越多個表。

GraphQL 規范學習網站 graphql.org 對這個過程有很好的描述https://graphql.org/learn/execution/#root-fields-resolvers

您可以嘗試一個名為 SwitchQL (github.com/SwitchQL/SwitchQL) 的新開源工具。 我已經在這個項目上工作了一段時間。

您將連接字符串傳遞給它,它會返回在現有數據庫之上運行 graphql 服務器所需的一切。 它還返回符合 Apollo 標准的客戶端變更和查詢。

我們目前只支持 Postgres。 如果您最終嘗試了,請告訴我您的想法!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM