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

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

1、添加Global.asax文件

右键项目-选择添加新项

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

using System;
using System.Web.Http;namespace WebApiApp
{public class Global : System.Web.HttpApplication{protected void Application_Start(object sender, EventArgs e){//配置WebApi的路由
            GlobalConfiguration.Configuration.Routes.MapHttpRoute(name:"default_api",routeTemplate: "{controller}/{item}",defaults: new { item=RouteParameter.Optional});}}
}

ok,路由配置完成

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

using System.Collections.Generic;
namespace WebApiApp.Models
{public static class Storages{public static IEnumerable<Student> Students { get; set; }static Storages(){Students = new List<Student>{new Student{Id=1,Name="张1" },new Student{Id=2,Name="张2" },new Student{Id=3,Name="张3" }};}}public class Student{public int Id { get; set; }public string Name { get; set; } }
}

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

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http;
using WebApiApp.Models;namespace WebApiApp.Controllers
{/// <summary>/// 当前控制器下的所有方法相当于是一个关于学生资源的集合,里面封装着对学生的所有操作./// </summary>public class StudentController:ApiController{/// <summary>/// Get /students/   -return student list/// </summary>/// <returns></returns>public IEnumerable<Student> Get(){return Storages.Students;}/// <summary>/// Get /students/zhangsan -return entity/// </summary>/// <returns></returns>public Student Get(string name){return Storages.Students.FirstOrDefault(w => w.Name.Equals(name, StringComparison.InvariantCultureIgnoreCase));}}
}

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

四、测试

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

项目地址/Student?name=张1

ok,说明项目部署成功.

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

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

转载于:https://www.cnblogs.com/GreenLeaves/p/8099819.html

Web API系列之三 基本功能实现相关推荐

  1. WEB API 系列(二) Filter的使用以及执行顺序

    在WEB Api中,引入了面向切面编程(AOP)的思想,在某些特定的位置可以插入特定的Filter进行过程拦截处理.引入了这一机制可以更好地践行DRY(Don't Repeat Yourself)思想 ...

  2. Web API系列(三):添加接口详细说明及测试

    1.引言 前边两篇博客介绍了Web API的基本框架以及路由配置,这篇博客主要解决在前后端分离项目中,为前端人员提供详细接口说明的问题,主要是通过修改WebApi HelpPage相关代码和添加Web ...

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

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

  4. WEB API系列(一):WEB API的适用场景、第一个实例

    在我前一篇博客<WebAPI前置知识:HTTP与RestfulAPI>中已经给各位简单介绍了HTTP协议与RestFul API的关系,以及一些基本的HTTP协议知识,在这些知识的铺垫下, ...

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

    本文转自:http://www.cnblogs.com/fzrain/p/3923727.html 前言 很久没更新了,之前有很多事情,所以拖了很久,非常抱歉.好了,废话不多说,下面开始正题.本篇仍然 ...

  6. 【Web API系列教程】1.3 — 实战:用ASP.NET Web API和Angular.js创建单页面应用程序(上)

    前言 在传统的web应用程序中,客户端(浏览器)通过请求页面来启动与服务器的通信.然后服务器处理该请求,并发送HTML页面到客户端.在随后页面上的操作中--例如,用户导航到一个链接或提交一个包含数据的 ...

  7. 【Web API系列教程】1.1 — ASP.NET Web API入门

    前言 HTTP不仅仅服务于web页面,同时也是构建暴露服务和数据的API的强大平台.HTTP有着简单.灵活和无处不在的特点.你能想到的几乎所有平台都包含有一个HTTP库,所以HTTP服务可以遍及广泛的 ...

  8. 【Web API系列教程】1.2 — Web API 2中的Action Results

    前言 本节的主题是ASP.NET Web API怎样将控制器动作的返回值转换成HTTP的响应消息. Web API控制器动作能够返回下列的不论什么值: 1. void 2. HttpResponseM ...

  9. 【Web API系列教程】3.3 — 实战:处理数据(建立数据库)

    前言 在本部分中,你将在EF上使用Code First Migration来用测试数据建立数据库. 在Tools目录下选择Library Package Manager,然后选择Package Man ...

最新文章

  1. poj3714 最近点对
  2. android开发百度地图坐标偏差,利用百度地图Android sdk高仿微信发送位置功能及遇到的问题...
  3. java11创建项目_2019-04-11 使用IDEA创建SpringBoot项目
  4. leetcode链表题
  5. 量化感知训练_如何评估训练质量?常被训练者忽视的内部负荷
  6. Maxwell与Canal 工具对比
  7. python入门——P49乱入:生成器
  8. JS判断日期是否在同一个星期内,和同一个月内
  9. Ubuntu 14.04 jdk安装与配置
  10. xp系统关于net use报错
  11. ANSYS网格转化为模型、ANSYS网格导入到workbench分析
  12. arm9开发板学习笔记之程序烧录
  13. F5 GTM DNS 知识点和实验 6 -智能DNS算法
  14. Altium Designer--如何用快捷键进行元器件旋转
  15. 【传统CV】Anovel adaptive morphological approach for degraded character image segmentation
  16. SES2000处理水深
  17. 习题5-7 使用函数求余弦函数的近似值 (15 分)
  18. 使用PowerDesigner逆向工程生成pdm文件(超全)
  19. 四大微信小程序测评结果出炉
  20. 关于谷歌账户的目标设置疑问解答

热门文章

  1. select下拉框如何触发函数并传递参数
  2. Linux中vectormath无法通过pip安装的解决办法
  3. 下三角矩阵的逆矩阵_上三角或下三角矩阵的逆矩阵能否简便方法求出??只有主副对角线不为0的矩阵能否直接写出逆矩阵。...
  4. Ubuntu系统下通过命令查找文件或文件夹
  5. graphviz安装以及入门
  6. 好莱坞标志将以NFT形式进行慈善拍卖
  7. 杭州滨江工作方案:将区块链等产业与“数字滨江”、“数字经济”紧密相连
  8. 加密托管机构Komainu与英国当局合作存储没收的加密货币
  9. TokenInsight:BTC新增人气缺乏,多头持仓量持续上升
  10. SAP License:SAP的国家会计科目表