zoukankan      html  css  js  c++  java
  • WebAPI

    WebAPI 是完全基于RESTful标准的(HTTP协议), WCF和WebService(SOAP协议)

      那么什么是RESTful

      RESTful是面向资源,一个地址代表一个资源。

      http://www.demo.com/student 可以代表学生的资源

      http://www.demo.com/student/张三 可以代表一个叫张三学生的资源

    WebAPI就是实现RESTful这个思想的一个框架,建立一个HTTP服务可以被各种客户端(例如:浏览器,智能手机终端,桌面客户端等)来调用的框架。它并不是ASP.NET MVC框架的一部分,它作为ASP.NET平台的一部分可以用于MVC,Web Form或者是作为一个独立的服务存在。

    下面我们来构建一个最简单的webAPI

    首先新建一个空的web应用程序

    用神器NuGet下载webAPI程序包

    创建一个实体类作为数据源

     1 using System;
     2 using System.Collections;
     3 using System.Collections.Generic;
     4 using System.Linq;
     5 using System.Web;
     6 namespace WebAPI.Models
     7 {
     8     public class Students
     9     {
    10         public int Id { get; set; }
    11         public string Name { get; set; }
    12         public int Age { get; set; }
    13         public static IList<Students> StudentsStorage = new List<Students>
    14         {
    15             new Students {Id = 1, Name = "张三", Age = 20},
    16             new Students {Id = 2, Name = "李四", Age = 21},
    17             new Students {Id = 3, Name = "王五", Age = 22},
    18         };
    19     }
    20 }

    新建一个StudentsController类使得它继承ApiController

     1 using System;
     2 using System.Collections;
     3 using System.Collections.Generic;
     4 using System.Linq;
     5 using System.Web;
     6 using System.Web.Http;
     7 using WebAPI.Models;
     8 namespace WebAPI.Cotntrollers
     9 {
    10     public class StudentsController:ApiController
    11     {
    12         //Get:/Students
    13         public IEnumerable<Students> Get()
    14         {
    15             return Students.StudentsStorage;
    16         }
    17         //Get:/Students/2
    18         public Students Get(int item)
    19         {
    20             return Students.StudentsStorage.FirstOrDefault(s => s.Id.Equals(item));
    21         }
    22         //POST:/Students
    23         public void Post(Students model)
    24         {
    25             Students.StudentsStorage.Add(model);
    26         }
    27         //Put:/Students
    28         public void Put(int item, Students model)
    29         {
    30             var exitst = Students.StudentsStorage.FirstOrDefault(s => s.Id.Equals(item));
    31             if (exitst != null)
    32             {
    33                 model.Id = exitst.Id;
    34                 
    35             }
    36             Students.StudentsStorage.Remove(exitst);
    37             Students.StudentsStorage.Add(model);
    38         }
    39         //DElETE:student/1
    40         public void Delete(int item)
    41         {
    42             var exitst = Students.StudentsStorage.FirstOrDefault(s => s.Id.Equals(item));
    43             Students.StudentsStorage.Remove(exitst);
    44         }
    45     }
    46 }

    新建一个Global.asax 配置WebAPI路由

    1  protected void Application_Start(object sender, EventArgs e)
    2         {
    3             //WebAPI路由
    4             GlobalConfiguration.Configuration.Routes.MapHttpRoute(
    5                 "default_api", 
    6                 "{controller}/{item}",
    7                defaults: new { item = RouteParameter.Optional });
    8         }

      那么好了一个最简单的WebAPI就好了 下面我们来测试一下这个WebAPI

    为什么的到的是XML我们来看一下

     从这可以看到我们发送的Content-Type 是 appliction/xml

     那我们如果需要Json格式的数据 怎么办 其实就是把请求的Content-Type改成appliction/json 我们就可以拿到json格式的数据 

     还有通过这个工具我们可以测试我们刚刚写的WebAPI  GET POST PUT DELETE方法

     

  • 相关阅读:
    thinkphp3.2升级至thinkphp5.0.24
    matlab从曲线图提取数据
    Pandorabox(Openwrt) 双宽带(WAN) 叠加网络实战
    大数据挖掘复习小记
    j2ee课程设计—基于activiti的请休假系统
    算法与数据结构第八次作业——散列表
    算法与数据结构——AVL树(平衡二叉树)
    算法与数据结构第六、七次作业——树
    算法与数据结构第六次作业——排序
    算法与数据结构——排序
  • 原文地址:https://www.cnblogs.com/mjxup/p/4470062.html
Copyright © 2011-2022 走看看