如何解决我应该使用什么代替解析器?
因为您已经知道不推荐使用本地解析器,所以我们不能将其用作处理REST缓存的一种透视方式。我们应该使用什么代替解析器? “外地政策”根本不适合这样做。想象一下...您有两个不同的客户端查询:getBooks和getBook。每个查询都从其余API获取数据。当我们已经从getBooks获取数据并运行另一个查询getBook时,就需要以某种方式处理这种情况。 getBook不应发出请求,因为数据已被缓存。我们在弃用它之前在解析器中进行了此操作。我们只是检查缓存,如果没有请求,则返回缓存中已经存在的数据。在当前情况下我们该如何处理?
解决方法
对不起,但这不是我的意思。这是一个代码示例:
export const getBooks = gql`
query getBooks () {
getBooks ()
@rest(
type: "Book"
path: "books"
endpoint: "v1"
) {
id
title
author
}
}
`
export const getBook = gql`
query getBook ($id: Int!) {
getBook (id: $id)
@rest(
type: "Book"
path: "book/{args.id}"
endpoint: "v1"
) {
id
title
author
}
}
`
因此,我们有两个不同的查询。目标是当我们同时运行两个getBook时,不应发出REST请求,因为自从getBooks获取数据以来,缓存中已经有相同的数据。在不推荐使用解析器之前,我们先在解析器中进行处理。就像:如果该ID在缓存中不存在,则发出一个请求,如果存在,则从缓存中向我提供数据。我们现在该怎么办?
您可以看到fetchPolicy完全不同。 本地字段也不好,因为它与字段有关而不是与整个实体有关。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。