Web API系列之三 基本功能实现
时间:2022-04-24
本文章向大家介绍Web API系列之三 基本功能实现,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
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>所有(前面的类型都没有的话就所有了咯)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Python计算文件或字符串的MD5/SHA
- .NETCore中实现ObjectId反解
- GSE16561数据集的文章图表复现,小众的illumina表达量芯片
- 数据挖掘课程能带给你什么收获
- AkShare-股票数据-龙虎榜-机构席位成交明细
- AkShare-股票数据-龙虎榜-机构席位追踪
- AkShare-股票数据-龙虎榜-营业上榜统计
- AkShare-股票数据-龙虎榜-个股上榜统计
- React中路由的使用
- CyanX 基于ReactHook的状态管理器,遵循函数式编程的理念,极简、可扩展设计哲学上手
- Serverless 架构下如何实现日志的实时输出?
- typescript基础篇(1):helloworld
- typescript基础篇(2):数据类型
- 22款好用的CLI工具
- typescript基础篇(3):接口