在 REST API 周围添加 graphql 包装器?

Posted

技术标签:

【中文标题】在 REST API 周围添加 graphql 包装器?【英文标题】:Add graphql wrappers around REST API ? 【发布时间】:2019-01-27 23:17:42 【问题描述】:

有人可以解释一下如何在 graphql 中包装现有的 REST API, 以及它将如何提高性能?

任何小的工作示例都会有很大帮助。

提前致谢!!!

【问题讨论】:

【参考方案1】:

在 GraphQL 架构中定义查询/突变。

type Query 
getBook(id: String): Book

在查询解析器类中使用任何方法来消费休息服务。

public class Query implements GraphQLQueryResolver 
public Book getBook(String bookId) 
        RestTemplate restTemplate = new RestTemplate();
        Map<String, String> map = new HashMap<>();
        map.put("bookId", bookId);
        ResponseEntity <Book> response = restTemplate.getForEntity("http://localhost:8080/bookDetails/getBook/bookId",Book.class, map);
        Book book = response.getBody();
        return book;
    

同样,您也可以通过实现 GraphQLMutationResolver 来定义 Mutation。

【讨论】:

这里我们还会调用 REST API 吗?在这种情况下它将如何提高性能?

以上是关于在 REST API 周围添加 graphql 包装器?的主要内容,如果未能解决你的问题,请参考以下文章

从 .NET Core 应用程序同时提供 REST 和 GraphQL API

sofa graphql 2 rest api 试用

sofa graphql 2 rest api webhook 试用

资讯 | GraphQL vs REST API 世纪Battle

GraphQL vs REST API 架构,谁更胜一筹?

使用 REST 包装 GraphQL 从 NestJS 提供 GraphQL 和 REST API