步步為營-98-MyAPI
1 通过NuGet程序管理包添加 Microsoft Asp.Net webAPI 2.2 的引用
2 添加两个文件夹Controllers和Models
2.1 在本地模拟数据库,所以在Models文件夹中添加Storages类
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- namespace MyAPIN.Models
- {
- public static class Storages
- {
- public static IEnumerable<Student> Students { get; set; }
- public static IEnumerable<Teacher> Teachers { get; set; }
- static Storages()
- {
- Students = new List<Student>()
- {
- new Student {Id=,Name="逍遥小天狼1",Age=,Gender=false},
- new Student {Id=,Name="逍遥小天狼2",Age=,Gender=false},
- new Student {Id=,Name="逍遥小天狼3",Age=,Gender=false},
- new Student {Id=,Name="逍遥小天狼4",Age=,Gender=false},
- new Student {Id=,Name="逍遥小天狼5",Age=,Gender=false},
- new Student {Id=,Name="逍遥小天狼6",Age=,Gender=false},
- };
- Teachers = new List<Teacher>();
- }
- }
- public class Person
- {
- public int Id { get; set; }
- public string Name { get; set; }
- public int Age { get; set; }
- public bool Gender { get; set; }
- }
- public class Student : Person { }
- public class Teacher : Person { }
- }
Storages
2.2 同时添加StudentsController 和 TeacherController 在Controllers中
- using MyAPIN.Models;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using System.Web.Http;
- namespace MyAPIN.Controllers
- {
- /// <summary>
- /// 学生资源集合
- /// </summary>
- public class StudentsController : ApiController
- {
- //C R U D
- public IEnumerable<Student> Get() {
- return Storages.Students;
- }
- public Student Get(string name) {
- return Storages.Students.FirstOrDefault(s=>s.Name.Equals(name,StringComparison.InvariantCultureIgnoreCase));
- }
- }
- }
StudentsController
3 添加Global 入口文件 用于配置API路由
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using System.Web.Http;
- using System.Web.Security;
- using System.Web.SessionState;
- namespace MyAPIN
- {
- public class Global : System.Web.HttpApplication
- {
- protected void Application_Start(object sender, EventArgs e)
- {
- //配置API路由
- GlobalConfiguration.Configuration.Routes.MapHttpRoute(
- "default_api",
- "{controller}/{item}",
- new { item=RouteParameter.Optional});
- }
- }
- }
Global
运行效果
添加其他接口
- using MyAPIN.Models;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using System.Web.Http;
- namespace MyAPIN.Controllers
- {
- /// <summary>
- /// 学生资源集合
- /// </summary>
- public class StudentsController : ApiController
- {
- //C R U D
- public IEnumerable<Student> Get() {
- return Storages.Students;
- }
- public Student Get(string item) {
- return Storages.Students.FirstOrDefault(s=>s.Name.Equals(item,StringComparison.InvariantCultureIgnoreCase));
- }
- public void Post(Student entity) {
- var list = Storages.Students as IList<Student>;
- entity.Id = Storages.Students.Max(s=>s.Id)+;
- list.Add(entity);
- }
- public void Delete([FromUri] string item) {
- var entity = Get(item);
- var list = Storages.Students as IList<Student>;
- list.Remove(entity);
- }
- public void Put([FromUri] string item,[FromBody] Student entity) {
- Delete(item);
- Post(entity);
- }
- }
- }
4 客戶端調用
添加"控制台應用程序" 引用web Api 2.2 Client
步步為營-98-MyAPI的更多相关文章
- 步步為營-97-MyMVC3
說明: 解決另外一個不合理之處:通過控制器完成處理 1:在mvc文件夾下面添加一個工廠類文件DefaultControllerFactory 1.2進一步升級為抽象工廠 2 下一步如何規範Contro ...
- 步步為營-96-MyMVC2
說明:地址欄中的URL還存在一些不足之處 地址欄中最好能是http"www.sss.com/asdf/aaa 1.1 模擬路由的原理:創建Routing文件夾,并添加URLRoutingMo ...
- 步步為營-95-MyMVC 1.0
說明:通過自己編寫MyMVC以便於對MVC內容實現機制有更深刻的認識 1.1:創建MyMVC項目,刪除無關引用,只保留system 和 system.web.同時該項目中以後添加一些文件后也要刪除無關 ...
- From COM to COM 侯捷 1998.06.12
摘要: 本文簡介 C++ Object Model 和 Component Object Model 的基本概念,並引介四本書籍: 1. Inside The C++ Object Model 2. ...
- 超时空英雄传说2复仇魔神完全攻略&秘技
╓─╥───────────────────────────────────────────────────╥─╖ ║ ║ 超 時 空 英 雄 傳 說 2 ║ ║ ║ ║ --復 仇 魔 神-- ║ ...
- BT觀念分享和常見問題彙整
一. TCP/IP基本觀念 1. IP : 每台在TCP/IP網路上的電腦必須具備的一個代表號或一個地址.IP又分為private IP(192.168.x.x /10.x.x.x /172.16.x ...
- H TC並沒有成為下一個摩托羅拉或諾基亞。
關於2014年第四季度,H T C在三季度財報說明中提到,“年度旗艦H T CO ne(M 8)與中端機型H T C D esire系列在競爭日趨激烈的智能手機市場保持穩定的銷售,市占率有所提升,延續 ...
- 一步步教你读懂NET中IL(附带图)
一步步教你读懂NET中IL(附带图) 接触NET也有1年左右的时间了,NET的内部实现对我产生了很大的吸引力,在msdn上找到一篇关于NET的IL代码的图解说明,写的挺不错的.个人觉得:能对这些底部的 ...
- 一步步教你轻松学主成分分析PCA降维算法
一步步教你轻松学主成分分析PCA降维算法 (白宁超 2018年10月22日10:14:18) 摘要:主成分分析(英语:Principal components analysis,PCA)是一种分析.简 ...
随机推荐
- 基于ip的虚拟主机配置——在一台服务器上绑定多个 IP 地址
进入/etc/sysconfig/network-scripts,修改ifcfg-ens33文件 输入 ip addr 查看ip 引用:https://blog.csdn.net/u013887008 ...
- jQuery实现回车绑定Tab事件
有时候我们希望回车事件绑定的是键盘的Tab事件.我的第一思路就是切换事件的keyCode,比如键盘事件按下的keyCode如果是13,我们将keyCode改为9.但是在实际编程中却未能实现此效果.于是 ...
- ProtonMiner挖矿蠕虫
特征 ProtonMail邮箱地址 利用漏洞 服务 漏洞 Hadoop 未授权访问 Drupal CVE-2018-7600 Redis 未授权访问 Spring Data Commons CVE-2 ...
- 给你的Linux系统上点stress【转】
转自:https://blog.csdn.net/sunvince/article/details/7187768 from: http://blog.yufeng.info/archives/202 ...
- $Django 站点:样式--文章--分类文章--文章详情--文章评论点赞--文章评论点赞统计(数据库优化)
<h3>个人站点下的</h3> 知识点 url (r'(?P<username>\w+)/p/(?P<id>\d+)', xiangxi,name='x ...
- tcpdump抓取mysql语句
抓包工具tcpdump的使用,抓取具体的sql语句 [root@test7_chat_api_im ~]# tcpdump -s -l - |strings tcpdump: listening on ...
- tcp和udp协议的聊天 和udp协议的时间同步机制-----编码
tcp协议聊天 服务端:: 客户端 udp协议的聊天 ############ udp协议 ########### 服务器 import socket sk = socket.socket(type ...
- 前端 ---JS中的面向对象
JS中的面向对象 创建对象的几种常用方式 1.使用Object或对象字面量创建对象 2.工厂模式创建对象 3.构造函数模式创建对象 4.原型模式创建对象 1.使用Object或对象字面量创建对象 ...
- 【原创】大数据基础之Benchmark(2)TPC-DS
tpc 官方:http://www.tpc.org/ 一 简介 The TPC is a non-profit corporation founded to define transaction pr ...
- [PHP]命名空间的一些要点
1.命名空间前不能接"\": namespace MyProject\Sub\Level; // it's right; namespace \MyProject\Sub\Leve ...