NancyFX 第二章 Rest框架
正如你看到的,Nancy有两个主要用途。
其中第一项是作为一种通用的基于 REST 框架,可替代 ASP.NET Web API 或其他Rest工具包。
默认情况下,Nancy提供一流的路由和内容协商机制,你在接下来的章节会了解更多。它不只是提供Rest节点,然而,大一部分是它的易用性,让大家更加乐于使用。
许多工具包都声称实现了Rest标准,而实际上它们没有,至少不是正式的W3C标准。虽然未能完全实现REST不是个问题,但是我们也不能贬抑那些符合 W3C 标准的方式。
下面的代码遵循 W3C 规范愉快地实现了基于REST的接口︰
代码1
public MP3Player() : base("mp3player") {
Get["/genres/"] = _ => {
// 从数据库中查询所有记录 代码
return HttpStatusCode.OK;
};
Put["/genres/"] = _ => {
// 向数据库中批量保存数据 代码
return HttpStatusCode.OK;
};
Post["/genres/"] = _ => {
// 添加新记录 代码
return HttpStatusCode.OK;
};
Delete["/genres/"] = _ => {
// 删除所有记录 代码
return HttpStatusCode.OK;
};
}
定义通常是这样清晰和显而易见,你几乎一眼能能看到实现了那些路由,返回了什么信息,以及如何处理的。
Nancy以这种方式实现了所有HTTP谓词,不只是前面的代码清单中的四个,其他谓词如下:
- Head
- Trace
- Options
- Connect
- Patch
鉴于你已经学到的,你已经可以通过添加重载Nancy标准接口来自定义类,实现自己的谓词相应操作。事实上,Nancy的主要优势之一是它能够使用简单的基于 REST 的概念和明确的代码来定义DSL(领域特定语言) 。
总结
在这一章,你已经看到了Nancy相比较于其他Rest框架,令人惊讶的处理方式。在下一章中,我们将继续这种探索和看到作为一个通用web 框架,Nancy是如何处理的。
NancyFX 第二章 Rest框架的更多相关文章
- jQuery系列 第二章 jQuery框架使用准备
第二章 jQuery框架使用准备 2.1 jQuery框架和JavaScript加载模式对比 jQuery框架的加载模式 <script> window.onload = function ...
- Spring学习指南-第二章-Spring框架基础(完)
第二章 Spring框架基础 面向接口编程的设计方法 在上一章中,我们看到了一个依赖于其他类的POJO类包含了对其依赖项的具体类的引用.例如,FixedDepositController 类包含 ...
- 第二章 Rest框架 Nancy
正如你看到的,Nancy有两个主要用途. 其中第一项是作为一种通用的基于 REST 框架,可替代 ASP.NET Web API 或其他Rest工具包. 默认情况下,Nancy提供一流的路由和内容协商 ...
- [翻译]Spring框架参考文档(V4.3.3)-第二章Spring框架介绍 2.1 2.2 翻译--2.3待继续
英文链接:http://docs.spring.io/spring-framework/docs/current/spring-framework-reference/html/overview.ht ...
- 深入浅出ExtJS 第二章 Ext框架基础
2.1 面向对象的基础架构(对象模型) 2.1.1 创建类 >.定义一个类: Ext.define('demo.Demo',{ name:'Lingo', hello:function () { ...
- 第二章App框架设计与重构
response标准格式: { "isError":false, "errorType": 0, "errorMessage": " ...
- 第二章 jQuery框架使用准备
window常用属性: History:有关客户访问过的URL的信息 Location: 有关当前url的信息 常用方法: Confirm()将弹出一个确认对话框 open()在页面上弹出一个新的浏览 ...
- Unity 游戏框架搭建 2019 (九~十二) 第一章小结&第二章简介&第八个示例
第一章小结 为了强化教程的重点,会在合适的时候进行总结与快速复习. 第二章 简介 在第一章我们做了知识库的准备,从而让我们更高效地收集示例. 在第二章,我们就用准备好的导出工具试着收集几个示例,这些示 ...
- Unity 游戏框架搭建 2019 (十八~二十) 概率函数 & GameObject 显示、隐藏简化 & 第二章 小结与快速复习
在笔者刚做项目的时候,遇到了一个需求.第一个项目是一个跑酷游戏,而跑酷游戏是需要一条一条跑道拼接成的.每个跑道的长度是固定的,而怪物的出现位置也是在跑道上固定好的.那么怪物出现的概率决定一部分关卡的难 ...
随机推荐
- 删除rabbitmq的队列和队列中的数据
访问http://{rabbitmq安装IP}:15672,帐号guest,密码guest(也可以使用自己创建的帐号). 登录后访问http://{rabbitmq安装IP}:15672/#/qu ...
- Ioc容器Autofac系列
1.http://blog.csdn.net/xingxing513234072/article/details/9211969 2.asp.net mvc中整合autofachttp://blog. ...
- 绿色版Tomcat的配置
在环境变量中不配置JAVA_HOME或者JRE_HONE的情况下(正确配置java的路径)不影响java的使用 可以正常使用 java -version .... 但是这种情况下 无法在Tomcat的 ...
- 点聚-weboffice 6.0 (一)
WebOffice是一款由北京点聚信息技术有限公司提供的完全免费(商业用途也免费)且功能强大的在线Word/excel/wps编辑辅助控件,可以实现:1.在线编辑Word.Excel.PPT.WPS. ...
- Swift 学习笔记(扩展和泛型)
在开始介绍Swift中的扩展之前,我们先来回忆一下OC中的扩展. 在OC中如果我们想对一个类进行功能的扩充,我们会怎么做呢. 对于面向对象编程的话,首先会想到继承,但是继承有两个问题. 第一个问题:继 ...
- viewport详解
本文主要讲解viewpor相关知识. 参考资料&内容来源 博客园:https://www.cnblogs.com/zaoa/p/8630393.html 博客园:http://www.cnbl ...
- 我的Java开发学习之旅------>Java NIO 报java.nio.charset.MalformedInputException: Input length = 1异常
今天在使用Java NIO的Channel和Buffer进行文件操作时候,报了java.nio.charset.MalformedInputException: Input length = 1异常, ...
- gon
gem 'gon' application.html 中添加 =include_gon action中 gon.activities = @activities js中 gon.activities
- HDU - 1495 非常可乐 【BFS】
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1495 思路 首先 如果可乐的体积 是奇数 那么是无解的 然后 如果能够得到两杯 都是一般容量的可乐 那 ...
- 排序List集合
这两天写代码过程中遇到一个需求,需要按照某个字段排序List集合,自己实现了一半,发现网上有个更好的版本,就采用了这个,记录下来. 使用这个工具类要注意一个就是 如果你按照age 字段排序,那么age ...