Как перенести существующие хранимые процедуры на использование graphql - PullRequest
0 голосов
/ 27 июня 2018

У меня есть устаревший проект, который использует более 700 сложных хранимых процедур для извлечения и изменения данных. Есть ли способ использовать Graphql для создания API без изменения хранимых процедур?

1 Ответ

0 голосов
/ 27 июня 2018

В зависимости от языка, на котором вы работаете, могут существовать библиотеки GraphQL, поддерживающие хранимые процедуры. Если нет, вы можете написать свой собственный.

Вы также можете написать тонкий слой REST и слой GraphQL поверх него.

Edit: Если вы используете ASP.NET Core, проверьте эту библиотеку и следуйте примерам, за исключением того, что замените жестко запрограммированные данные вызовами в библиотеке, которые вы обычно используете для связи с SQL Server для получения требуемой данные. Я рекомендую Dapper (на самом деле это было , написанное людьми из Stack Overflow !), Так как оно позволит вам писать легкие запросы, такие как conn.Query("[dbo].myFooProc @bar @baz", new { bar = quux, baz = 22 }) (или используя любые существующие классы, которые у вас есть).

Так что в конечном итоге ваш код будет выглядеть примерно так:

public class FooBarQuery : ObjectGraphType
{
  public FooBarQuery()
  {

    var MyData  = conn.Query("[dbo].myFooBarProc @FooId", new { FooId = 2 }).ToList(); 
    Field<FooType>(
      resolve: context => MyData; 
    );
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...