第二章 Rest框架 Nancy
正如你看到的,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是如何处理的。
第二章 Rest框架 Nancy的更多相关文章
- jQuery系列 第二章 jQuery框架使用准备
第二章 jQuery框架使用准备 2.1 jQuery框架和JavaScript加载模式对比 jQuery框架的加载模式 <script> window.onload = function ...
- Spring学习指南-第二章-Spring框架基础(完)
第二章 Spring框架基础 面向接口编程的设计方法 在上一章中,我们看到了一个依赖于其他类的POJO类包含了对其依赖项的具体类的引用.例如,FixedDepositController 类包含 ...
- NancyFX 第二章 Rest框架
正如你看到的,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 显示、隐藏简化 & 第二章 小结与快速复习
在笔者刚做项目的时候,遇到了一个需求.第一个项目是一个跑酷游戏,而跑酷游戏是需要一条一条跑道拼接成的.每个跑道的长度是固定的,而怪物的出现位置也是在跑道上固定好的.那么怪物出现的概率决定一部分关卡的难 ...
随机推荐
- Ctrl-A全选这点事(C#,WinForm)
所有的文本框,不管单行多行都Ctrl-A全选就好了吧?是啊,很方便.Windows的软件基本都是这样.可为什么我们自己制作的WinForm就默认不是这样呢?谁知道呢,可能是WinForm饱受诟病,要改 ...
- SQL分隔字符串
创建函数: )) --@str:目标字符串 --@spliter:分隔符 RETURNS @tb TABLE(ch NVARCHAR(max)) AS BEGIN DECLARE @Num INT,@ ...
- (转)也谈BIO | NIO | AIO (Java版)
原文地址: https://my.oschina.net/bluesky0leon/blog/132361 关于BIO | NIO | AIO的讨论一直存在,有时候也很容易让人混淆,就我的理解,给出一 ...
- js小技巧
js判断字符长度 直接使用String对象的属性,空格亦算一个字符 myString = "Hello world"; length = myString.length js比较字 ...
- Leetcode 99: Recovery binary search tree 总算明白了算法, 把代码写清楚, 让错误无处可藏.
想写点什么, 因为这道题花了我好几个小时, 在周日, 除了在球场上跑了二个小时, 就泡在这道题上面. read blogs: http://www.lifeincode.net/programming ...
- 解决IE浏览器文字上面放无内容的元素选不中的方法
<div class="md1"> <p><i>sdgsgereryeryery</i></p> <label c ...
- 【codevs1106】 篝火晚会
http://codevs.cn/problem/1106/ (题目链接) 题意 将1~n顺序排列的环改成另一个环,问n-不动点数. Solution 啊智障啦,不会做×_× 左转hzwer 代码 / ...
- [LeetCode] Merge Intervals 合并区间
Given a collection of intervals, merge all overlapping intervals. For example, Given [1,3],[2,6],[8, ...
- hql中in关键字的用法
hql: from " + FoodComment.class.getName() + " f where f.id in :groupIds" 封装的方法: publi ...
- 延迟加载外部js文件,延迟加载图片(jquery.lazyload.js和echo,js)
js里一说到延迟加载,大都离不开两种情形,即外部Js文件的延迟加载,以及网页图片的延迟加载: 1.首先简单说一下js文件的3种延迟加载方式: (1)<script type="text ...