构建 Web 服务器与应用配置:从基础到分布式系统
1. 构建 Web 服务器
1.1 代码实现
在构建 Web 服务器时,对于 entries 请求的处理代码如下:
entries
|> Enum.map(&"#{&1.date} #{&1.title}")
|> Enum.join("\n")
conn
|> Plug.Conn.put_resp_content_type("text/plain")
|> Plug.Conn.send_resp(200, formatted_entries)
此代码与 add_entry 的处理方式类似,由于 entries 是 GET 请求,所以使用 get 宏而非 post 。在这个实现中,先对参数进行解码,然后获取所需的条目,接着生成要发送给客户端的文本表示并返回响应。
值得注意的是,代码将 HTTP 服务器视为系统核心的接口。在处理请求时,会将输入转换为特定领域的类型,然后调用与 HTTP 无关的代码(如 Todo.Server.add_entry )来执行操作。系统核心并不知道也不关心它是在 HTTP 请求的上下文中运行,这种关注点分离的方式使代码更易于处理、测试和扩展。
1.2 系统测试
可以使用
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



