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是如何处理的。

原文地址:https://www.cnblogs.com/lilunjia/p/6203381.html