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

时间:2018-08-21 17:56:19

标签: rest graphql graphql-js graphql-java express-graphql

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

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

先谢谢了!

1 个答案:

答案 0 :(得分: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。