如何迁移现有存储过程以使用graphql

时间:2018-06-27 17:25:09

标签: graphql

我有一个旧项目,该项目使用700多个复杂的存储过程来获取和修改数据。是否可以使用Graphql创建API而不更改存储过程?

1 个答案:

答案 0 :(得分:3)

根据您使用的语言,可能有一些GraphQL库可以存储过程。如果没有,您可以自己编写。

您还可以在其上编写一个REST薄层和GraphQL层。

编辑: 如果您使用的是ASP.NET Core,请检出this library并按照示例进行操作,除了将硬编码数据替换为通常用于与SQL Server进行通信以获取所需数据的库中的调用。我建议使用Dapper(实际上是written by the folks at 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; 
    );
  }
}