国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

WebAPI

2019-11-17 02:05:01
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

WebAPI

WebAPI 是完全基于RESTful標(biāo)準(zhǔn)的(HTTP協(xié)議),WCF和WebService(SOAP協(xié)議)

  那么什么是RESTful

  RESTful是面向資源,一個(gè)地址代表一個(gè)資源。

  http://www.demo.com/student可以代表學(xué)生的資源

  http://www.demo.com/student/張三可以代表一個(gè)叫張三學(xué)生的資源

WebAPI就是實(shí)現(xiàn)RESTful這個(gè)思想的一個(gè)框架,建立一個(gè)HTTP服務(wù)可以被各種客戶端(例如:瀏覽器,智能手機(jī)終端,桌面客戶端等)來(lái)調(diào)用的框架。它并不是asp.net MVC框架的一部分,它作為ASP.NET平臺(tái)的一部分可以用于MVC,Web Form或者是作為一個(gè)獨(dú)立的服務(wù)存在。

下面我們來(lái)構(gòu)建一個(gè)最簡(jiǎn)單的webAPI

首先新建一個(gè)空的web應(yīng)用程序

用神器NuGet下載webAPI程序包

創(chuàng)建一個(gè)實(shí)體類作為數(shù)據(jù)源

 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 }

新建一個(gè)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:ApiController11     {12         //Get:/Students13         public IEnumerable<Students> Get()14         {15             return Students.StudentsStorage;16         }17         //Get:/Students/218         public Students Get(int item)19         {20             return Students.StudentsStorage.FirstOrDefault(s => s.Id.Equals(item));21         }22         //POST:/Students23         public void Post(Students model)24         {25             Students.StudentsStorage.Add(model);26         }27         //Put:/Students28         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/140         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 }

新建一個(gè)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         }

那么好了一個(gè)最簡(jiǎn)單的WebAPI就好了 下面我們來(lái)測(cè)試一下這個(gè)WebAPI

為什么的到的是xml我們來(lái)看一下

從這可以看到我們發(fā)送的Content-Type 是 appliction/xml

那我們?nèi)绻枰狫son格式的數(shù)據(jù) 怎么辦 其實(shí)就是把請(qǐng)求的Content-Type改成appliction/json 我們就可以拿到j(luò)son格式的數(shù)據(jù)

還有通過(guò)這個(gè)工具我們可以測(cè)試我們剛剛寫的WebAPI GET POST PUT DELETE方法


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 安顺市| 班玛县| 年辖:市辖区| 望江县| 辽阳县| 墨脱县| 灌云县| 牙克石市| 远安县| 黄平县| 广东省| 新兴县| 连州市| 石棉县| 客服| 叶城县| 龙川县| 惠来县| 尤溪县| 布拖县| 南岸区| 彩票| 田阳县| 和硕县| 赤峰市| 临桂县| 峨眉山市| 白水县| 延庆县| 同心县| 昌都县| 略阳县| 会昌县| 西林县| 太仓市| 和田县| 花莲市| 依兰县| 永修县| 嘉鱼县| 大安市|