api - Mapbox API /styles/v1/{username} 不反映最新的样式数据
问题描述
在使用 Mapbox 样式 API 调用更新样式 (POST) 或删除样式 (DELETE) 后,对列表样式 (GET /styles/v1/{username}) 的后续调用会返回陈旧的样式数据。例如,在调用 DELETE 然后调用 CREATE 之后,GET 调用仍将返回已删除的样式!
等待大约 5 分钟通常会返回最新、正确的样式数据。显然 Mapbox 端发生了一些缓存,但应立即反映删除或更新。
有人确认或提供解决方法吗?
解决方案
这确实是因为我们的默认缓存行为如何适用于这些 API 端点。
样式列表端点特别具有 5 分钟的默认 Cache-Control 值(即Cache-Control: max-age=300
)。您可以通过查看 API 响应的标头来确认:
可以通过在请求中包含查询参数来绕过此默认行为fresh=true
。使您的完整请求如下所示:
GET /styles/v1/{username}?access_token={scopes:styles.list}&fresh=true
包含此查询参数将导致 API 为您提供响应Cache-Control: no-cache
,您将看到与用户名关联的最新样式信息:
⚠️ 免责声明:我目前在 Mapbox 工作⚠️
推荐阅读
- nativescript - Nativescript 中的事件传播
- python - R,Python之间的系数差异多项式回归
- java - Mapstruct 不区分大小写的映射
- c# - Sinch 回调 API:ICE 事件中的挂断
- javascript - SuiteScript 2.0 中用于替换只读字段中数据的模块?
- mysql - Mysql - 获取一个字段中具有相等值并且在其他字段中具有非空值的所有记录
- android - Android - 如何计算行驶距离
- istio - Istio 跟踪使用标头将多个请求捆绑在一起
- node.js - 为什么有些应用程序需要使用其他 Web 服务器,如 Apache,而 node 或 express 不需要?
- javascript - 为什么我的文件无法加载在单独的 css 文件中实现的脚本?