WCF Web API Preview 5 发布了,你可以官方网站下载或通过Nuget安装它. 下面让我们在Asp.net applicatoin中来实现一个非常简单的web api service.

在VS中打开Package Manage Console下,输入:

Install-Package WebApi.All

然后我们创建Contact与其实现类:

   1:      /// <summary>
   2:      /// a simple Contact entity
   3:      /// </summary>
   4:      public class Contact
   5:      {
   6:          /// <summary>
   7:          /// Name
   8:          /// </summary>
   9:          public string Name { get; set; }
  10:      }  
  11:   
  12:      [ServiceContract]
  13:      public interface IContactsResource
  14:      {
  15:          [WebGet(UriTemplate = "")]
  16:          List<Contact> Get();
  17:      }
  18:   
  19:      /// <summary>
  20:      /// Demo for host a web.api in asp.net application
  21:      /// </summary>
  22:      /// <remarks>author Petter Liu http://www.cnblogs.com/wintersun </remarks>
  23:      public class ContactsResource :IContactsResource
  24:      {
  25:          /// <summary>
  26:          /// Get list of Contacts
  27:          /// </summary>
  28:          /// <returns>list of contacts</returns>
  29:          public List<Contact> Get()
  30:          {
  31:              return new List<Contact>()
  32:             { 
  33:                new Contact() { Name = "Peter" } 
  34:             };
  35:          }
  36:      }

代码很简单.然后在Global.asax中Application_Start增加如下代码:

   1:          void Application_Start(object sender, EventArgs e)
   2:          {
   3:              RouteTable.Routes.MapServiceRoute<ContactsResource>("contacts"); 
   4:          }

接着打开浏览器运行吧,访问http://localhost:7287/contacts , 得到这样的结果:

  <?xml version="1.0" encoding="utf-8" ?> <ArrayOfContact xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"             xmlns:xsd="http://www.w3.org/2001/XMLSchema"><Contact><Name>Peter</Name> </Contact></ArrayOfContact>

让我们再用UnitTest来验证一下, 引用HttpClient库.

   1:          [TestMethod]
   2:          public void TestGetAction()
   3:          {
   4:              //arrange
   5:              var client = new HttpClient();
   6:   
   7:              //act
   8:              var resp = client.Get("http://localhost:7287/contacts");
   9:   
  10:              //assert
  11:              Assert.IsTrue(resp.IsSuccessStatusCode);
  12:   
  13:              var contacts = resp.Content.ReadAs<List<Contact>>();
  14:              Assert.IsNotNull(contacts);
  15:              Assert.AreEqual("Peter", contacts.FirstOrDefault().Name);
  16:          }

OK,Pass. 一切就是那么简单

希望这篇POST对您开发WCF有帮助.

您可以感兴趣的文章:

使用WCF web API测试基于REST的WCF Service

作者:Petter Liu
出处:http://www.cnblogs.com/wintersun/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
该文章也同时发布在我的独立博客中-Petter Liu Blog。

在Asp.net应用程序中构建基于WCF Web.Api的服务相关推荐

  1. [转]构建基于WCF Restful Service的服务

    本文转自:http://www.cnblogs.com/scy251147/p/3566638.html 前言 传统的Asmx服务,由于遵循SOAP协议,所以返回内容以xml方式组织.并且客户端需要添 ...

  2. 在ASP.NET Core MVC中构建简单 Web Api

    Getting Started 在 ASP.NET Core MVC 框架中,ASP.NET 团队为我们提供了一整套的用于构建一个 Web 中的各种部分所需的套件,那么有些时候我们只需要做一个简单的 ...

  3. 基于 Node.js + Koa 构建完整的 Web API (配置 ESLint 和使用 Airbnb 编码规范)

    主题内容:基于 Node.js + Koa 构建完整的 Web API (配置 ESLint 和使用 Airbnb 代码规范) 背景描述:上一篇 基于 Node.js + Koa 构建完整的 Web ...

  4. 返璞归真 asp.net mvc (10) - asp.net mvc 4.0 新特性之 Web API

    返璞归真 asp.net mvc (10) - asp.net mvc 4.0 新特性之 Web API 原文:返璞归真 asp.net mvc (10) - asp.net mvc 4.0 新特性之 ...

  5. webapi输出炜json_.Net基于MVC4 Web Api输出Json格式实例

    本文实例讲述了.Net基于MVC4 Web Api输出Json格式的方法,分享给大家供大家参考.具体实现方法如下: 1.Global 中增加json输出 GlobalConfiguration.Con ...

  6. 基于Nuxt3的API接口服务网站

    原文链接: 基于Nuxt3的API接口服务网站 挺早之前就想写个 api 接口服务,封装下自己收集的一些 api 接口,以便调用,正好最近在接触 SSR 框架,所以就使用 Nuxt3 来编写该项目. ...

  7. .NET Core微服务之基于Ocelot实现API网关服务(续)

    Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.负载均衡与请求缓存 1.1 负载均衡 为了验证负载均衡,这里我们配置了两个Consul Client节点,其中ClientServic ...

  8. 报表服务扩展:基于WCF技术的报表服务扩展

    这项技术被我鼓吹了很久,今天终于有机会拿出来展示一下. 为什么要进行扩展呢?扩展的目的是为了和自己现有的系统整合在一起.比如现有系统已经很复杂,能处理很多业务,设计系统的开发人员没有充分考虑到技术的变 ...

  9. 在ASP.NET应用程序中捕捉身份验证状态的变化

    前年我写过一篇随笔抱怨Microsoft在ASP.NET架构中Session_End事件上处理,说来惭愧,其实当年我对ASP.NET运行时的复杂性理解不足.实话说,捕捉通过身份验证和注销身份验证对我来 ...

最新文章

  1. angular 兼容ie7 bootstrap2兼容ie6
  2. NSIS 打包 win7 中无法删除快捷方式
  3. [CTO札记]从生活来看‘服务心态’
  4. 批处理命令 / echo
  5. Java移位操作小测试
  6. 明年,5G iPhone不只一款!
  7. CEO 职位也不保,盘点 2017 年 IT 界残酷的裁员事件
  8. 通过javascript 函数的调用方式来理解this
  9. ZigBee-CC2530单片机 - LED呼吸灯
  10. matlab检验相关性显著性检验,基于matlab的栅格数据相关分析及显著性检验
  11. 为什么便利店晚上顾客很少?还要24小时营业?
  12. 数据结构名词解释详细总结
  13. [515]歌曲识别-dejavu-python
  14. 五、构建deb软件安装包
  15. COIL:结合稠密检索和词汇匹配的更高效检索模型
  16. 【机房收费个人版】触发器与存储过程
  17. 计算计控制系统2.0
  18. 30条实用信息教你读懂电影版本
  19. Unity脚本(一)
  20. Jmeter+ant+jenkins 实现接口自动化构建

热门文章

  1. 用tcc自己编译自己
  2. 代码谱写传奇,深度揭秘中国开发者现状!
  3. Spin控件使用总结
  4. html tab与jQuery,js与jquery分别实现tab标签页功能的方法
  5. c语言循环8,C语言8 循环语句 | CN-SEC 中文网
  6. 程序员法律考试(5)-民法(2)
  7. C指针原理(29)-Ncurses-文本终端的图形
  8. 【推荐系统】深入理解推荐系统:无需人工特征工程的xDeepFM
  9. 【励志】公子龙:我的工作状态和存款进度
  10. 【小白学PyTorch】13.EfficientNet详解及PyTorch实现