架构
本页介绍 PostgREST 的架构。
鸟瞰图

代码地图
本节简要介绍一些重要的模块。
主程序
程序的起点是 Main.hs.
CLI
应用程序
App.hs 负责组合不同的模块。
身份验证
API 请求
ApiRequest.hs 负责解析 URL 查询字符串(遵循 PostgREST 语法)、请求头和请求主体。
如果请求无效,则可能在此级别被拒绝。例如,当向 PostgREST 提供未知的媒体类型或使用未知的 HTTP 方法时。
计划
使用 Schema 缓存,Plan.hs 填充完成用户请求所需的带外 SQL 细节(如 ON CONFLICT (pk)
子句)。
如果请求无效,则可能在此级别被拒绝。例如,当对不存在的资源进行资源嵌入时。
查询
Query.hs 生成满足用户请求所需的 SQL 查询(参数化和准备)。
仅在此阶段才会使用连接池中的连接。
Schema 缓存
配置
管理员
HTTP
HTTP 服务器由 Warp 提供。
监听器
Listener.hs 负责 监听器。