前言
在前端开发中,有时候我们需要从多种不同的后端服务中获取数据,每个后端服务都可能使用不同的 API,这样会使得前端开发变得复杂。但是,GraphQL-rest-bindings 可以让我们使用 GraphQL 来调用 RESTful API,简化前端开发流程。
什么是 @aaa-backend-stack/graphql-rest-bindings?
@aaa-backend-stack/graphql-rest-bindings 是一个可以将 RESTful API 包装成 GraphQL API 的 npm 包。通过它,我们可以在 GraphQL 中调用 RESTful API,具有很好的可用性和可扩展性。
如何安装和配置 @aaa-backend-stack/graphql-rest-bindings?
首先,我们需要安装 npm 包 @aaa-backend-stack/graphql-rest-bindings。我们可以打开命令行,切换到项目的根目录,然后运行如下命令:
npm install --save @aaa-backend-stack/graphql-rest-bindings
安装完成之后,我们需要在 GraphQL schema 中定义所有的查询(query)和变量(mutation)。
举个例子,我们有一个 RESTful API,它可以获取最新的文章列表。我们可以先定义一个 GraphQL Type:
-- -------------------- ---- ------- ----- ----------- - --- ------------------- ----- ---------- ------- - ------ - ----- ------------- -- ------- - ----- ------------- -- -------- - ----- ------------- -- ------------ - ----- ------------- - - ---
然后,我们可以定义一个查询(query):
-- -------------------- ---- ------- ----- ----- - --- ------------------- ----- -------- ------- - --------------- - ----- --- ------------------------- ----- - ------ - ----- ---------- -- ----- - ----- ---------- - -- -------- --- ----- -- ------------------------------------------------------------------------------ --------- -- ----------- - - ---
最后,我们需要在 GraphQL schema 中添加这个查询:
const schema = new GraphQLSchema({ query: Query, mutation: Mutation });
现在,我们已经在 GraphQL 中成功调用了一个 RESTful API。
如何使用 @aaa-backend-stack/graphql-rest-bindings?
使用 @aaa-backend-stack/graphql-rest-bindings 很简单。在定义 Type 和查询时,我们只需要在 Type 或者查询的 resolver 中使用 bindREST API,就可以将 RESTful API 包装成 GraphQL API。
举个例子,我们有一个 RESTful API,它可以创建一个新用户。我们可以使用如下方式将它包装成 GraphQL API:
-- -------------------- ---- ------- ----- -------- - --- ------------------- ----- ------- ------- - --------- - ----- ------------- -- ------ - ----- ------------- -- --------- - ----- ------------- - - --- -- - ------- --- --- ------- --- ----- ------------ - --- -------------- --------- ----------------------------- --- ----- -------- - --- ------------------- ----- ----------- ------- - ----------- - ----- --------- ----- - --------- - ----- ------------- -- ------ - ----- ------------- -- --------- - ----- ------------- -- -- --------------- ----- -------- - ----- ---------- ------ -------- - - ----- ------ ----------------------------- --------- ------ -------- --- - - - ---
这样,我们就在 GraphQL 中成功调用了一个 RESTful API,实现了注册用户的功能。
总结
@aaa-backend-stack/graphql-rest-bindings 是一个很好的 npm 包,可以让我们使用 GraphQL 中调用 RESTful API 更加简单,并且具有很好的可用性和可扩展性。在实际开发中,我们可以使用它来调用各种不同的后端服务,提高开发效率,同时也让我们的代码更加简洁易懂。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/93842