2016-09-22 18 views
10

Chúng tôi có cơ sở dữ liệu SQL Server hiện tại và chúng tôi đang sử dụng C#. Cho phép nói rằng khách hàng điện thoại di động của chúng tôi gửi một graphql đến máy chủ. Làm thế nào tôi có thể chuyển đổi SQL này, để khách hàng của tôi có được những dữ liệu những gì ông mong đợi?Chuyển đổi Graphql thành SQL?

+1

Một trong những linh hồn có thể là graphql.net + Entity Framework. –

+0

@ Manivannan.D.Sekaran bất kỳ ví dụ nào – user960567

+0

Bạn có đang sử dụng Khung thực thể không? Vui lòng cung cấp một ví dụ cho bạn truy vấn Graphql để tôi có thể cung cấp cho bạn một ví dụ chính xác về chuyển đổi. – Transcendent

Trả lời

13

GraphQL và SQL, trong khi có âm tương tự, giải quyết các sự cố khác nhau. SQL được sử dụng để truy vấn một cơ sở dữ liệu trực tiếp. GraphQL được sử dụng để truy vấn các nguồn dữ liệu thuộc bất kỳ loại nào, chẳng hạn như cơ sở dữ liệu (thông qua các thư viện SQL hoặc các máy khách), các API và các tệp tĩnh. GraphQL có thể được so sánh với các điểm cuối API REST hoặc ad-hoc.

Một giải pháp sẽ là tạo bản thân việc triển khai GraphQL. GraphQL.org có rất nhiều thông tin tuyệt vời về cách triển khai và sử dụng máy chủ GraphQL. Nếu đó là quá nhiều công việc, bạn có thể heo con lại khỏi dự án này: GraphQL .NET

Cũng xem xét xem xét các triển khai GraphQL khác, chẳng hạn như ApolloStack. Nếu bạn có thể có máy chủ GraphQL riêng biệt với máy chủ .NET của mình, bạn có thể sử dụng ApolloStack hoặc máy chủ Javascript GraphQL khác để lưu trữ dữ liệu của bạn.

+3

alex câu hỏi rất đơn giản. Làm thế nào tôi có thể nhận được dữ liệu của tôi đã có trong cơ sở dữ liệu SQL SERVER của tôi nếu khách hàng gửi cho tôi dữ liệu ở định dạng graphql. Đây có phải là có thể hay không? – user960567

+0

Dưới đây là một ví dụ về máy chủ GraphQL lấy từ SQL sử dụng Node.js: https://github.com/apollostack/GitHunt-API/tree/master/api/sql – stubailo

+1

Node.js có nhiều thư viện hơn trong hệ sinh thái GraphQL, vì vậy xây dựng một dịch vụ Node sẽ cung cấp cho bạn nhiều tùy chọn hơn. [Join Monster] (https://github.com/stems/join-monster) là một thư viện cố gắng tạo các truy vấn SQL từ một yêu cầu GraphQL và định nghĩa lược đồ đã cho. –

0

Không, thật không may là bạn không thể chuyển đổi GraphQL thành SQL.

Nếu khách hàng của bạn gửi cho bạn yêu cầu trong GraphQL, bạn không có lựa chọn nào ngoài việc tạo máy chủ GraphQL và truy vấn cơ sở dữ liệu từ đó.

GraphQL không phải là SQL. Trong khi SQL là ngôn ngữ truy vấn cơ sở dữ liệu, thì GraphQL là ngôn ngữ truy vấn từ phía máy khách đến phần giữa.

5

Tôi khuyên bạn nên xem xét triển khai phiên bản C# của kho lưu trữ Tham gia Monster, được viết bởi
Andy Carlson. https://github.com/stems/join-monster

Cố gắng chuyển đổi truy vấn GraphQL do khách hàng cung cấp thành truy vấn SQL có thể hiệu quả nhất. Nó hiện không hỗ trợ các mối quan hệ nhiều hoặc nhiều kiểu công đoàn (các hiệp hội đa hình), nhưng các mục tiêu đó là một phần của bản đồ đường bộ của kho lưu trữ.

+2

Cảm ơn bạn đã đề cập! Tham gia Monster thực tế hỗ trợ nhiều mối quan hệ. Dữ liệu bạn có thể nhận được từ nó bị hạn chế, nhưng hiện tại nó đang được thực hiện. –

+0

Tôi không biết! Hiện tại tôi thực sự muốn sử dụng nó, nhưng tôi đang làm việc với Apollo Server vì vậy tôi nghĩ rằng tôi sẽ cần phải chờ cho đến khi Apollo được hỗ trợ hoặc có thể giúp đỡ trong việc hỗ trợ nó. – AjaxLeung

Các vấn đề liên quan