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币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于Spring Boot框架的博客系统.zip
- (源码)基于Spring Boot框架的博客管理系统.zip
- (源码)基于ESP8266和Blynk的IR设备控制系统.zip
- (源码)基于Java和JSP的校园论坛系统.zip
- (源码)基于ROS Kinetic框架的AGV激光雷达导航与SLAM系统.zip
- (源码)基于PythonDjango框架的资产管理系统.zip
- (源码)基于计算机系统原理与Arduino技术的学习平台.zip
- (源码)基于SSM框架的大学消息通知系统服务端.zip
- (源码)基于Java Servlet的学生信息管理系统.zip
- (源码)基于Qt和AVR的FestosMechatronics系统终端.zip