WebAPI

WebAPI 是徹底基於RESTful標準的(HTTP協議), WCF和WebService(SOAP協議)web

  那麼什麼是RESTfuljson

  RESTful是面向資源,一個地址表明一個資源。api

  http://www.demo.com/student 能夠表明學生的資源瀏覽器

  http://www.demo.com/student/張三 能夠表明一個叫張三學生的資源app

WebAPI就是實現RESTful這個思想的一個框架,創建一個HTTP服務能夠被各類客戶端(例如:瀏覽器,智能手機終端,桌面客戶端等)來調用的框架。它並非ASP.NET MVC框架的一部分,它做爲ASP.NET平臺的一部分能夠用於MVC,Web Form或者是做爲一個獨立的服務存在。框架

下面咱們來構建一個最簡單的webAPI工具

首先新建一個空的web應用程序測試

用神器NuGet下載webAPI程序包spa

建立一個實體類做爲數據源code

 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方法

相關文章
相關標籤/搜索