Good for restful API
### Good for Restful API:构建更规范的RESTful API #### 概述 本文将详细介绍如何使用Webmachine框架来创建符合HTTP语义的REST服务。Webmachine是一个基于Erlang语言构建的RESTful框架,其核心目标是简化HTTP业务逻辑处理,使开发者能够专注于构建业务功能,而非底层HTTP细节。 #### Webmachine框架 ##### 起源与目标 Webmachine最初是从Riak项目中重构出来的,并在Justin Sheehy的演讲《Webmachine:一个实用的HTTP执行模型》中进行了介绍。该框架基于Mochiweb(一款用Erlang编写的Web服务器)构建,旨在帮助开发者轻松构建遵循HTTP语义的服务,同时避免了在业务逻辑中直接处理HTTP相关的复杂性。 ##### 原则 - **默认行为**:Webmachine实现了一些默认行为,应用需要实现一组特定函数,这些函数将在框架内部被调用。 - **好莱坞原则**:框架调用应用提供的函数,而不是反之。 - **函数签名**:所有函数具有相同的签名`f(Req, Data, Context) -> {Result, Req, Data, Context}`。 - `Result`:通常包含布尔值,用于向决策核心发送信号。 - `ReqData`:存储请求和响应数据,可在每个函数中读取或修改,并传递到下一个函数。 - `Context`:由应用自行维护的状态信息,框架不处理这一参数。 - **无副作用编程**:由于Erlang的基础实现,Webmachine强制实施无副作用的编程模式。状态的修改只能通过传入参数的方式进行。 ##### 结构 Webmachine应用程序主要由一个或多个资源组成,这些资源是实现了特定回调和内部函数的Erlang模块。资源位于`/src`目录下,而每个应用程序都有一个`dispatch.conf`配置文件,用于定义URL访问请求到相应资源的路由规则。 #### 构建REST服务 本节将通过一个具体的例子——论文库的REST API——来演示如何使用Webmachine构建REST服务。该API提供对论文的存储、更新、检索和删除操作,每篇论文包含标题和作者信息。 ##### 实现的操作 1. **存储论文**:允许用户上传新论文。 2. **更新论文**:允许用户编辑已存在的论文。 3. **检索论文**:允许用户查询特定论文。 4. **删除论文**:允许用户删除论文。 ##### 开发流程 采用测试驱动开发(TDD)的方法来构建API,使用Python的`Requests`库编写API测试。这种方式有助于确保API的正确性和稳定性,同时也方便后续的功能扩展和维护。 #### 结论 Webmachine为开发者提供了一种简单高效的方式来构建符合HTTP语义的RESTful服务。通过对框架原理的理解及其提供的工具和技术的运用,开发者可以专注于业务逻辑的设计与实现,而无需过多关注底层的HTTP细节,从而提高开发效率和代码质量。对于那些希望快速构建高性能REST服务的人来说,Webmachine无疑是一个值得考虑的选择。
剩余10页未读,继续阅读
- slzs_zyt2018-12-28这点积分都被骗光了
- 粉丝: 3
- 资源: 4
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Java-美妆神域_3rm1m18i_221-wx.zip
- springboot高考志愿智能推荐系统 LW PPT.zip
- web学校课程管理系统(编号:07471106).zip
- SpringBoot的校园服务系统(编号:61189239).zip
- 百货中心管理系统(编号:745621100)(1).zip
- 毕业生就业推荐系统(编号:0225912).zip
- game_patch_1.29.13.13020.pak
- 毕业生追踪系统(编号:13356163).zip
- 宾馆客房管理系统设计与实现(编号:70764218).zip
- 餐品美食论坛(编号:3118587).zip
- 仓库管理系统(编号:6809848).zip
- 大学生就业系统.zip
- 宠物管理系统.zip
- 大学生心理咨询平台(编号:40361285).zip
- 大学生校园线上招聘系统(编号:0926903)(1).zip
- 大学生就业信息管理系统_xb8ce10b_229-wx.zip