Plug 概览

2025-04-25
2025-05-01
进度 15%
Elixir Plug

代码以 Plug v1.7.10 (博客引擎的版本)为例。

网络请求的抽象化

  • TODO 函数式编程范式下,应用可以被理解为对某一事物的操作组成的集合
    • 以网络应用为例,…
    • 再介绍和 OOP 视角的差别(以 Sanic 为对比)
  • TODO 作为 Erlang VM 生态众多服务器的抽象接口(原文是「连接适配器」)

核心

用一句话概括整个 Plug 应用,就是允许开发者可以根据编写/组织对连接进行一系列操作的 plugs 编写其自己的网络应用。

%Plog.Conn{}

一个典型的基于 FP 开发的应用,基本上可以这么看待:

result = data |> func1() |> func2 |> ...

主要依照文档的划分依据进行讲解。

请求相关
响应相关
响应请求过程的生命周期要用到的

上下文管理(Session 与 Assigns)

获取相关
  • %Plug.Conn.Unfetched{}
连接相关

可以理解为 Plug 独到的

Plug

  • TODO Plug 存在函数以及模块两种形式
    • 函数
    • 模块(需要实现两个回调)
  • TODO Plug.run/3
  • TODO Plug.forward/4

Plug.Builder

Plug.Router

——亟待更新——