1

我有一些 API,例如 https://api-****** y?apikey=sX 4&q=london,其中 q=london 是一个会不断变化的参数,那么如何在 url 列表中添加这个 URL在 ngsw-config.json 文件中

"dataGroups": [
    {
      "name": "api-performance",
      "urls": [
        "https://api-***************y?apikey=sX******4&q=london",
        "https://api-***************y?apikey=sX******4&q=manchester",
        "https://api-***************y?apikey=sX******4&q=birmingham"
      ],
      "cacheConfig": {
        "strategy": "performance",
        "maxSize": 100,
        "maxAge": "3d"
      }
    },

我有两个疑问:

  1. 与其为所有不同的参数(如伦敦/曼彻斯特/伯明翰)一次又一次地添加相同的 url,有没有一种方法可以让我只添加不带参数的基本 URL,它会在用户搜索时存储所有不同参数的响应?

  2. 与其手动添加 URL,不如在用户在线搜索时动态存储 URL 的响应。我的意思是我最初不会在 ngsw-config.json 文件的列表中添加任何 URL,但是当用户请求该 url 时,它的响应会自动存储在缓存中。

4

1 回答 1

1

我得到了这个,认为我必须在ngsw-config.json文件中给出完整的url实际上有点愚蠢,实际上我们可以简单地给出基本的url,我们既不需要提供apiKey参数也不需要提供任何其他参数,例如 london/manchester/birmingham,构建后 dist 文件夹中的 ngsw.json 文件,将 url 存储为模式,它只匹配基本 url 并存储所有查询以及用户对该 url 所做的所有不同参数的查询。上面的代码可以重写如下。每当用户搜索它们时,它都会通过缓存伦敦/曼彻斯特/伯明翰所有商店的数据来正常工作。

"dataGroups": [
    {
      "name": "api-performance",
      "urls": [
        "https://api-***************y
      ],
      "cacheConfig": {
        "strategy": "performance",
        "maxSize": 100,
        "maxAge": "3d"
      }
    },
于 2020-07-22T19:35:48.370 回答