<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Api-Contract on PlumePHP</title><link>https://plumephp.com/tags/api-contract/</link><description>Recent content in Api-Contract on PlumePHP</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Sun, 27 Sep 2026 10:30:00 +0800</lastBuildDate><atom:link href="https://plumephp.com/tags/api-contract/index.xml" rel="self" type="application/rss+xml"/><item><title>API契约与版本治理：OpenAPI/Protobuf契约管理、兼容性检查与SDK自动生成</title><link>https://plumephp.com/api-contract-governance/</link><pubDate>Sun, 27 Sep 2026 10:30:00 +0800</pubDate><guid>https://plumephp.com/api-contract-governance/</guid><description>&lt;h2 id="引言"&gt;引言&lt;/h2&gt;
&lt;p&gt;API 一旦发布，就进入公共领域。一个 &lt;code&gt;GET /users&lt;/code&gt; 接口背后可能站着几十个消费方：内部前端、移动端、数据管道、第三方集成。当你删掉一个字段、改了一个类型、或悄悄改变了分页语义，每一个破坏性变更都会像涟漪一样波及整个调用方生态。然而现实是——&lt;strong&gt;大部分 API 破坏性变更都不是有意的，而是&amp;quot;悄悄发生&amp;quot;的&lt;/strong&gt;：有人改了字段名没改文档，有人新加了一个必填字段，有人改了枚举值。&lt;/p&gt;</description></item><item><title>TypeScript 运行时类型安全边界：Zod 深度、Valibot 对比与 API 契约</title><link>https://plumephp.com/typescript-runtime-validation-typesafe/</link><pubDate>Sat, 26 Sep 2026 14:00:00 +0800</pubDate><guid>https://plumephp.com/typescript-runtime-validation-typesafe/</guid><description>&lt;p&gt;&lt;strong&gt;编译期类型再严谨，也无法保证&amp;quot;越过进程边界&amp;quot;的数据是安全的&lt;/strong&gt;——HTTP 请求体、数据库行、消息队列里的消息，在运行时都可能与声明不符。这就是运行时类型安全边界（Runtime Type Safety Boundary）存在的意义：在数据进入可信域的那一刻，用 schema 做一次&amp;quot;诚实检查&amp;quot;。&lt;/p&gt;</description></item></channel></rss>