<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Malli on PlumePHP</title><link>https://plumephp.com/tags/malli/</link><description>Recent content in Malli on PlumePHP</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Tue, 29 Sep 2026 10:00:00 +0800</lastBuildDate><atom:link href="https://plumephp.com/tags/malli/index.xml" rel="self" type="application/rss+xml"/><item><title>Clojure REST API 设计实战：reitit、coercion、错误模型与文档</title><link>https://plumephp.com/clojure-rest-api-design/</link><pubDate>Tue, 29 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/clojure-rest-api-design/</guid><description>&lt;p&gt;设计 API 和写 API 是两件事。Clojure 生态里，reitit + coercion + OpenAPI 让「设计」能落成「代码与文档」，而「错误模型」「分页」「鉴权」这些看似琐碎的决策，决定了 API 能否被团队长期维护、被调用方稳定消费。本文从资源建模讲到契约测试，覆盖 reitit 数据驱动路由、Schema/Malli coercion、结构化错误、分页过滤排序、JWT 鉴权、版本化、OpenAPI 文档与性能并发，帮你交付一套「规范即代码」的 REST API。&lt;/p&gt;</description></item></channel></rss>