33、构建 Web 服务器与应用配置:从基础到分布式系统

构建 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 系统测试

可以使用

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值