尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Cloudflare Workers 兼容性标志 fetcher_no_get_put_delete:移除 Fetcher 上的 get/put/delete 辅助方法
Cloudflare Workers 兼容性标志 fetcher_no_get_put_delete移除 Fetcher 上的 get/put/delete 辅助方法【免费下载链接】cloudflare-docsCloudflare’s documentation项目地址: https://gitcode.com/GitHub_Trending/cl/cloudflare-docs导读本文围绕 Cloudflare Docs 仓库中的兼容性标志文档 fetcher-no-get-put-delete.md 展开深入解析 Workers 运行时中Durable Object stub 与 Service Bindings 上遗留的get()/put()/delete()辅助方法被移除的前因后果、启用方式与迁移影响。读完本文你将理解该兼容性标志fetcher_no_get_put_delete与反向标志fetcher_has_get_put_delete的作用机制掌握通过compatibility_date、compatibility_flags、Cloudflare Dashboard 或 API 配置该行为的方法并了解这一变更如何为自定义同名方法铺平道路。背景Fetcher 类型对象的fetch()方法在 Workers 运行时中有两类 API 对象实现了与全局fetch()行为类似、但路由方式完全不同的fetch()方法Durable Object stub通过DurableObjectNamespace#get()/getByName()获取的客户端句柄用于向远端 Durable Object 发送请求。其接口定义见 durable-objects/api/stub.mdxstub 的fetch()会将请求直接投递到该对象实例而非依据 URL 路由。Service Bindings服务绑定Worker A 声明对 Worker B 的绑定后可通过绑定对象上的fetch()把Request对象转发给 Worker B。典型用法见 service-bindings/http.mdx。这些fetch()方法与全局fetch()的关键区别在于请求的目标不是由 URL 决定的而是由被调用对象所代表的目标实体决定的。也就是说调用env.WORKER_B.fetch(request)时请求会被送往WORKER_B绑定的 Worker而不是按 URL 域名解析。遗留辅助方法get()/put()/delete()原文档指出历史上凡是实现了fetch()方法的此类 API 对象同时还会暴露get()、put()、delete()三个方法。它们是围绕fetch()的薄封装thin wrappers自动执行对应的 HTTP 方法GET / PUT / DELETE自动处理请求体与响应体的写入与读取。换句话说开发者原本可以写出类似下面这样的调用模式示意因为该 API 从未被正式文档化// 示意代码遗留的辅助方法语义 await stub.put(request, body); // 相当于 fetch(request, { method: PUT, body }) const value await stub.get(request); // 相当于 fetch(request, { method: GET }) await stub.delete(request); // 相当于 fetch(request, { method: DELETE })变更内容与生效方式核心变更原文档明确说明这些辅助方法是许多年前非常早期的想法从未被正式文档化因此很少甚至从不被使用。Cloudflare 决定将其移除具体触发条件有两个满足其一即生效显式开启标志在配置中启用fetcher_no_get_put_delete兼容日期达标设置compatibility_date为2024-03-26或之后的日期。从标志文件的 Frontmatter 可以看到完整的元数据定义fetcher-no-get-put-delete.mdname: Fetchers no longer have get/put/delete helper methods sort_date: 2024-03-26 enable_date: 2024-03-26 enable_flag: fetcher_no_get_put_delete disable_flag: fetcher_has_get_put_delete其中enable_flagfetcher_no_get_put_delete移除辅助方法disable_flagfetcher_has_get_put_delete保留辅助方法用于在较新的兼容日期下主动恢复旧行为enable_date/sort_date2024-03-26该变更随兼容日期默认生效的时间点。这一组元数据字段与仓库中的兼容性标志 schema 严格对应。见 src/schemas/compatibility-flags.ts其中定义了name、enable_date、enable_flag、disable_flag、sort_date、experimental等字段本标志属于普通非实验性标志。配置方式一Wrangler推荐最常用的方式是在wrangler.jsonc中同时设置兼容日期与标志列表。参考 compatibility-dates.mdx 与 compatibility-flags.mdx 中的通用配置模式{ // 设置兼容日期为 2024-03-26 或之后即可默认禁用辅助方法 compatibility_date: 2024-03-26 }如果你希望把compatibility_date保持在2024-03-26之前保留旧行为但又要单独开启本次变更可以显式列出标志{ compatibility_date: 2024-03-02, compatibility_flags: [fetcher_no_get_put_delete] }反过来如果你已经使用了2024-03-26及之后的兼容日期但出于某些原因仍依赖这些辅助方法可以显式反向恢复{ compatibility_date: 2025-01-01, compatibility_flags: [fetcher_has_get_put_delete] }注意compatibility_flags既可以提前启用未来变更也可以关闭过去已默认生效的变更。修改后需重新运行npx wrangler deploy才会对线上 Worker 生效。配置方式二Cloudflare Dashboard在 Cloudflare Dashboard 的Workers 设置中更新兼容日期与兼容标志。通过 Dashboard 新建 Worker 时compatibility_date会自动设置为当前日期——也就是说凡是 2024-03-26 之后通过 Dashboard 新建的 Worker默认即不再具备get/put/delete辅助方法。配置方式三Cloudflare API通过 Workers Script API 或 Workers Versions API 上传 Worker 时可在请求体的metadata字段中携带compatibility_date与compatibility_flags。需要注意API 未显式指定兼容日期时会回退到最老的兼容日期2021-11-02早于任何标志生效因此通过 API 创建新 Worker 时强烈建议把compatibility_date设置为当前日期。变更动机为自定义同名方法让路原文档给出了移除这些辅助方法的核心理由This change paves a future path for you to be able to define your own custom methods using these names. Without this change, you would be unable to define your ownget,put, anddeletemethods, since they would conflict with these built-in helper methods.也就是说只要内建的get/put/delete还挂在 Fetcher 类型对象上开发者就无法用自己的自定义方法覆盖这些名字——名字冲突会直接导致自定义方法不可用或行为歧义。移除内建辅助方法后Durable Object 可以通过 RPC如 Capn Proto 支撑的 E-order 语义调用自由定义名为get、put、delete的业务方法Service Bindings 场景下的 Worker 接口设计也不再受限于这三个保留字。从源码结构看DurableObjectStub在仓库文档中被描述为用于在远端 Durable Object 上调用 RPC 方法的客户端其类型是泛型的允许在 stub 上调用 RPC 方法stub.mdx。这也印证了未来自定义方法将主要通过泛型 stub 的 RPC 机制承载而非旧的薄封装辅助方法。影响范围与迁移建议谁可能受影响几乎不受影响由于这些方法从未被官方文档化绝大多数现有 Worker 并没有使用它们。这也是 Cloudflare 敢于直接在2024-03-26兼容日期下默认移除的原因。可能受影响极少数基于早期运行时行为、自行依赖这三个辅助方法的内部代码或第三方库。这类代码在兼容日期提升后会抛出TypeError方法不存在。迁移路径搜索代码中所有对 Durable Object stub 或 Service Binding 对象调用.get(/.put(/.delete(的地方将其改写为显式的fetch()调用并指定 HTTP 方法例如stub.fetch(request, { method: PUT, body })若短期无法完成迁移可在compatibility_flags中加入fetcher_has_get_put_delete临时保留旧行为但应尽快排期移除避免长期依赖未文档化 API。总结fetcher_no_get_put_delete是 Cloudflare Workers 兼容性机制渐进式移除历史遗留 API的一个典型示例通过enable_date 2024-03-26与配套的disable_flagCloudflare 在保证旧 Worker 不受影响的前提下为开发者释放了get/put/delete三个方法名使其未来可以定义自己的同名自定义方法。理解这套正向标志 反向标志 兼容日期的组合配置是管理 Workers 运行时演进、避免隐式行为变更的关键能力。进一步参考本标志的原始定义见 fetcher-no-get-put-delete.md完整的兼容性机制说明见 compatibility-dates.mdx 与 compatibility-flags.mdx相关 API 对象定义见 stub.mdx 与 service-bindings/http.mdx。【免费下载链接】cloudflare-docsCloudflare’s documentation项目地址: https://gitcode.com/GitHub_Trending/cl/cloudflare-docs创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

401 报错刷屏?TaoToken + Cursor 这样验证

401 报错刷屏?TaoToken + Cursor 这样验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/9/18 11:45:03
ESXi 6.7安装与生产部署避坑指南

ESXi 6.7安装与生产部署避坑指南

1. 这不是“装个系统”那么简单:ESXi6.7到底在解决什么问题?你搜“VMware vSphere ESXi6.7 的安装及基本使用”,点开一堆教程,开头全是“下载ISO→挂载→下一步→完成”。但真正用过半年以上、管过20台以上虚拟机的运维老手都知道…

📅 2026/9/18 11:40:03
基于Django与LLM的智能美食推荐系统实践

基于Django与LLM的智能美食推荐系统实践

1. 项目概述:当美食推荐遇上大模型去年帮学弟调试毕业设计时,遇到个有意思的现象:他收集了十万条菜谱数据,但推荐结果总出现"川菜爱好者天天收到西湖醋鱼"的尴尬情况。这正是传统推荐系统的痛点——静态算法难以理解饮食…

📅 2026/9/18 11:40:03
MORE NEWS

更多资讯

📰

MySQL触发器实战:语法拆解、NEW与OLD机制及电商库存自动扣减案例

1. 触发器到底是什么,为什么你需要它MySQL触发器(Trigger)是数据库对象里比较特殊的一类,它不像表那样存数据,也不像存储过程那样被主动调用,而是“挂在”某张表的某个操作上,自动执行一段SQL逻…

📰

远程控制软件怎么选?三年经验拆解四款主流工具的真实表现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

Lab色彩模式详解:从原理到Photoshop实操的色彩管理指南

1. 先弄明白 Lab 到底是什么做设计、搞摄影后期、跑印刷流程的人,迟早会撞上一个叫 Lab 的色彩模式。有人听说它是 Photoshop 里的一个选项,有人知道它在色彩管理里地位很高,但真问起来“Lab 到底是个啥、为什么非要它不可”,能讲…

📰

Agent SRE 可视化观测面板:基于 Streamlit 监控 AI 代理可靠性、成本与混沌实验

Agent SRE 可视化观测面板:基于 Streamlit 监控 AI 代理可靠性、成本与混沌实验 【免费下载链接】agent-governance-toolkit AI Agent Governance Toolkit — Policy enforcement, zero-trust identity, execution sandboxing, and reliability engineering for aut…

📰

Visual Studio中C#开发必备快捷键:从补全到调试重构

写代码这件事,真正拉开效率差距的往往不是打字速度,而是右手离开键盘去摸鼠标的次数。我见过不少C#开发者在Visual Studio里写代码时,光标在类和方法之间跳转全靠鼠标点,智能提示没弹出来就用鼠标去点菜单,调试时断点加…

📰

集合竞价抓涨停:基于Python的MACD背离与斐波那契量化选股策略

1. 这套策略的底层逻辑,先搞懂集合竞价和MACD背离在干嘛先说结论:集合竞价抓涨停这件事,本质不是在抓“涨停”,而是在抓“竞价阶段资金已经决定了今天要抢筹”的那批股票。我见过很多人把精力花在盘中打板上,也有很多人…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬