Web API系列之二讲解了如何搭建一个WebApi的基架,本文主要在其基础之上实现基本的功能.下面开始逐步操作:

一、配置WebApi的路由-用于配置外部如何访问内部资源的url的规则

1、添加Global.asax文件

右键项目-选择添加新项

添加成功,修改Global.asax.cs文件,代码如下:

  1. using System;
  2. using System.Web.Http;
  3.  
  4. namespace WebApiApp
  5. {
  6. public class Global : System.Web.HttpApplication
  7. {
  8.  
  9. protected void Application_Start(object sender, EventArgs e)
  10. {
  11. //配置WebApi的路由
  12. GlobalConfiguration.Configuration.Routes.MapHttpRoute(
  13. name:"default_api",
  14. routeTemplate: "{controller}/{item}",
  15. defaults: new { item=RouteParameter.Optional}
  16. );
  17. }
  18. }
  19. }

ok,路由配置完成

二、模拟数据仓储,用于提供测试的数据,代码如下:

  1. using System.Collections.Generic;
  2. namespace WebApiApp.Models
  3. {
  4. public static class Storages
  5. {
  6. public static IEnumerable<Student> Students { get; set; }
  7.  
  8. static Storages()
  9. {
  10. Students = new List<Student>
  11. {
  12. new Student{Id=,Name="张1" },
  13. new Student{Id=,Name="张2" },
  14. new Student{Id=,Name="张3" }
  15. };
  16. }
  17. }
  18. public class Student
  19. {
  20. public int Id { get; set; }
  21. public string Name { get; set; }
  22. }
  23. }

三、编写Api控制器,通过该控制器向外部暴露数据

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Web.Http;
  6. using WebApiApp.Models;
  7.  
  8. namespace WebApiApp.Controllers
  9. {
  10. /// <summary>
  11. /// 当前控制器下的所有方法相当于是一个关于学生资源的集合,里面封装着对学生的所有操作.
  12. /// </summary>
  13. public class StudentController:ApiController
  14. {
  15. /// <summary>
  16. /// Get /students/ -return student list
  17. /// </summary>
  18. /// <returns></returns>
  19. public IEnumerable<Student> Get()
  20. {
  21. return Storages.Students;
  22. }
  23.  
  24. /// <summary>
  25. /// Get /students/zhangsan -return entity
  26. /// </summary>
  27. /// <returns></returns>
  28. public Student Get(string name)
  29. {
  30. return Storages.Students.FirstOrDefault(w => w.Name.Equals(name, StringComparison.InvariantCultureIgnoreCase));
  31. }
  32. }
  33. }

至此基本功能全部实现,现在可以开始运行项目,测试功能.

四、测试

向浏览器中输入   项目地址/Student

项目地址/Student?name=张1

ok,说明项目部署成功.

注:服务器端返回xml的原因是:浏览器向服务端请求的就是xml数据,如下图示:

Chrome浏览器接收服务器端返回的数据类型默认的优先级是:html>xhtml+xml>xml>webp>所有(前面的类型都没有的话就所有了咯)

Web API系列之三 基本功能实现的更多相关文章

  1. nginx高性能WEB服务器系列之三版本升级

    nginx系列友情链接:nginx高性能WEB服务器系列之一简介及安装https://www.cnblogs.com/maxtgood/p/9597596.htmlnginx高性能WEB服务器系列之二 ...

  2. Redis总结(五)缓存雪崩和缓存穿透等问题 Web API系列(三)统一异常处理 C#总结(一)AutoResetEvent的使用介绍(用AutoResetEvent实现同步) C#总结(二)事件Event 介绍总结 C#总结(三)DataGridView增加全选列 Web API系列(二)接口安全和参数校验 RabbitMQ学习系列(六): RabbitMQ 高可用集群

    Redis总结(五)缓存雪崩和缓存穿透等问题   前面讲过一些redis 缓存的使用和数据持久化.感兴趣的朋友可以看看之前的文章,http://www.cnblogs.com/zhangweizhon ...

  3. Web API系列(三)统一异常处理

    前面讲了webapi的安全验证和参数安全,不清楚的朋友,可以看看前面的文章,<Web API系列(二)接口安全和参数校验>,本文主要介绍Web API异常结果的处理.作为内部或者是对外提供 ...

  4. Web API系列(二)接口安全和参数校验

    以前简单介绍过web api 的设计,但是还是有很多朋友问我,如何合理的设计和实现web api.比如,接口安全,异常处理,统一数据返回等问题.所以有必要系统的总结总结 web api 的设计和实现. ...

  5. ASP.NET Web API系列教程目录

    ASP.NET Web API系列教程目录 Introduction:What's This New Web API?引子:新的Web API是什么? Chapter 1: Getting Start ...

  6. ASP.NET Web API系列教程(目录)(转)

    注:微软随ASP.NET MVC 4一起还发布了一个框架,叫做ASP.NET Web API.这是一个用来在.NET平台上建立HTTP服务的Web API框架,是微软的又一项令人振奋的技术.目前,国内 ...

  7. [转]ASP.NET Web API系列教程(目录)

    本文转自:http://www.cnblogs.com/r01cn/archive/2012/11/11/2765432.html 注:微软随ASP.NET MVC 4一起还发布了一个框架,叫做ASP ...

  8. Hello Web API系列教程——Web API与国际化

    软件国际化是在软件设计和文档开发过程中,使得功能和代码设计能处理多种语言和文化习俗,在创建不同语言版本时,不需要重新设计源程序代码的软件工程方法.这在很多成熟的软件开发平台中非常常见.对于.net开发 ...

  9. Web Api系列教程第2季(OData篇)(二)——使用Web Api创建只读的OData服务

    前言 很久没更新了,之前有很多事情,所以拖了很久,非常抱歉.好了,废话不多说,下面开始正题.本篇仍然使用上一季的的项目背景(系列地址http://www.cnblogs.com/fzrain/p/34 ...

随机推荐

  1. memcached 缓存数据库应用实践

    1.1 数据库对比 缓存: 将数据存储到内存中,只有当磁盘胜任不了的时候,才会启用缓存   缺点:断电数据丢失(双电),用缓存存储数据的目的只是为了应付大并发的业务. 数据库: mysql(关系型数据 ...

  2. 垃圾陷阱洛谷dp

    题目描述 卡门――农夫约翰极其珍视的一条Holsteins奶牛――已经落了到“垃圾井”中.“垃圾井”是农夫们扔垃圾的地方,它的深度为D(2<=D<=100)英尺. 卡门想把垃圾堆起来,等到 ...

  3. 单词接龙dfs洛谷

    题目传送门:https://www.luogu.org/problem/show?pid=1019#sub 典型的爆搜,每次更新最大龙长度即可 搜索每个字符串编号,与已经连接好的字符串进行比较,以此往 ...

  4. node.js爬虫

    这是一个简单的node.js爬虫项目,麻雀虽小五脏俱全. 本项目主要包含一下技术: 发送http抓取页面(http).分析页面(cheerio).中文乱码处理(bufferhelper).异步并发流程 ...

  5. JSON序列化时消除空格

    使用 python 序列化时,通常使用 json.dumps()生成 json,但是会在key和value之间默认给你加上一个空格.传参时可能会应为这个空格导致服务端解析失败. 之前做接口测试时,就遇 ...

  6. Netty之二进制文件传输

    传输会话简要 客户端发起一个文本请求给服务器端, 服务器端解析里面文本, 返回文件给客户端, 客户端解析文件 服务器端 因为示例文件比较小, 所以没有做分段传输, 而是直接一次性把整个文件byte[] ...

  7. DDD峰会归来话DDD

    一场大戏落幕,首届DDD中国峰会如大会主题色一般的红.或许在12月9日这一天,全中国的DDD粉丝大约有一半都汇聚在了国家会议中心.听起来是幸,其实是不幸,因为DDD在中国的人群基数实在是太少了. 因为 ...

  8. windows 终端命令详解

    打开"运行"对话框(Win+R),输入cmd,打开控制台命令窗口... 也可以通过cmd /c 命令 和 cmd /k 命令的方式来直接运行命令 注:/c表示执行完命令后关闭cmd ...

  9. Linux安装Nginx以及简单理解

    1.Nginx简单介绍 ①.Nginx:一个高性能的HTTP和反向代理服务器,高并发处理很不错. ②.反向代理:在计算机世界里,由于单个服务器的处理客户端(用户)请求能力有一个极限,当用户的接入请求蜂 ...

  10. JavaWeb学习总结(一)——JavaWeb开发入门(转)

    转载自 http://www.cnblogs.com/xdp-gacl/p/3729033.html 一.基本概念 1.1.WEB开发的相关知识 WEB,在英语中web即表示网页的意思,它用于表示In ...