Okapi HTTP框架文档
Okapi 是一个面向 Haskell HTTP Server 的微框架,定位是基于 WAI 的轻量抽象。它提供一套 Applicative eDSL,用于解析请求的 method、path、query、body、headers,并将响应约束纳入 Responder。官方同时明确说明:当前不推荐生产使用。
Okapi 推荐使用 Endpoint 定义服务。Endpoint 是“可执行的 API 规格”,包含 method、Path.Script、Query.Script、Body.Script、Headers.Script 和 Responder.Script。开发者可从 Endpoint 组合 Handler 与 Plan,最终生成 WAI Application,也可生成 OpenAPI Specification。另一种 Matchpoint 写法更简洁,基于 PatternSynonyms 与 ViewPatterns 直接匹配 Request,但缺点是无法进行静态分析,也不能生成 OpenAPI。
该项目面向 Haskell,示例使用 stack 创建项目并添加 okapi 依赖。底层依赖 WAI,可通过 Warp 运行;HTTP Method 来自 http-types。它强调能与任意 monad stack 或 effect system 集成,Plan 中的 transformer 用于将自定义 Monad 解释到 IO。文档还提到未来会支持客户端生成,Servant <> Okapi 章节目前仍是 Coming Soon。
正文未出现商业定价、账号体系或支付方式。它更像一个可添加到 Haskell 项目中的库,部署方式由开发者自行决定,例如使用 Warp 启动服务。因此不存在传统 SaaS 的托管限制,但也没有托管服务能力说明。
优点是类型信息丰富,Endpoint 能同时约束请求解析与响应形态,并自动产出 OpenAPI,适合重视类型安全和 API 契约的 Haskell 开发者。缺点是学习曲线明显,需要理解 Applicative、LinearTypes、PatternSynonyms、ViewPatterns 等特性;Matchpoint 虽快但安全性和可分析性弱;项目成熟度不足,不适合生产关键系统。
仅凭抓取正文无法判断 okapi.wiki 在中国大陆的网络可达性,也未涉及支付。若需要替代方案,可评估 Haskell 生态中的 Servant、Scotty、Yesod、Spock 或直接使用 WAI/Warp。
本测评基于公开资料整理,不构成购买建议,请以 okapi.wiki 官网实际信息为准。
开发者可参考其HTTP服务DSL和OpenAPI生成。
评分明细(分布与用户短评)接入中。当前展示 TG4G 综合评分,数据源自公开测评与用户反馈。