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

  • 相关阅读:
    Swift3.0 函数闭包与 Block
    深入理解RunLoop
    Autorelease对象什么时候释放?
    Mysql数据库分库分表Springboot+mybatis+druid+shardingsphere
    Mysql数据库读写分离Springboot+mybatis+druid+shardingsphere
    docker-compose安装mysql主从集群
    监听ZK节点数据变化的几种方式
    c语言替换avx指令集,Dlib支持CPU指令集编译问题(SSE4.2或者AVX)
    centos7防火墙
    centOS7安装nginx及nginx配置
  • 原文地址:https://www.cnblogs.com/lilunjia/p/6203381.html
Copyright © 2020-2023  润新知