一 什么是WebAPI
- web:網(wǎng)頁(yè)
- API:接口(一套別人封裝的屬性和方法)
- webAPI:專門操作網(wǎng)頁(yè)的方法和屬性
萬物皆對(duì)象野瘦,在webAPI中把網(wǎng)頁(yè)中所有元素都當(dāng)成對(duì)象來處理
二 Restful
- 在REST規(guī)則中渐溶,有兩個(gè)基礎(chǔ)概念:對(duì)象戈咳、行為
- 對(duì)象就是我們要操作的對(duì)象疤孕,例如添加用戶的操作擅编,那么對(duì)象就是user
- 行為有4種常用的:查看寝并、創(chuàng)建蜕猫、編輯寂曹、刪除
- rest的提出者很巧妙的利用http現(xiàn)有方法來對(duì)應(yīng)這4種行為:
GET - 查看
POST - 創(chuàng)建
PUT - 編輯
DELETE - 刪除
三 學(xué)習(xí)Dome
- 創(chuàng)建一個(gè)學(xué)生實(shí)體(Model)
public class Students
{
public int Id { get; set; }
public string Name { get; set; }
}
- 創(chuàng)建一個(gè)學(xué)生的控制器(Controllers)
public class StudentsController : ApiController
{
public List<Students> Get() {
return new List<Students>() {
new Students{ Id=1,Name="zhangsan1"},
new Students{ Id=2,Name="zhangsan2"},
new Students{ Id=3,Name="zhangsan3"},
new Students{ Id=4,Name="zhangsan4"},
new Students{ Id=5,Name="zhangsan5"},
};
}
public string Get(String name)
{
return "你傳入的參數(shù)是" + name;
}
public void Post(Students stu)
{
throw new Exception("錯(cuò)了");
}
public void Put(int Id,Students stu) {
}
public void Delete(int id) {
}
}
//get請(qǐng)求返回data數(shù)據(jù)
$.ajax({
url: "/api/Students?name=白晨星",
type: "get"
}).done(function (data) {
console.log(data);
})
//post請(qǐng)求給存值
$.ajax({
url: "/api/Students",
type: "post",
data: {
Id:1,
Name:"wangwu"
}
}).done(function () {
console.log("成功")
}).fail(function () {
console.log("失敗")
})
//put請(qǐng)求通過Id修改值
$.ajax({
url: "/api/Students/1",
type: "Put",
data: {
Id: 12,
Name:"白晨星"
}
})
//delete請(qǐng)求通過Id刪除數(shù)據(jù)
$.ajax({
url: "/api/students/1",
type: "delete",
})
四 自定義
- 創(chuàng)建一個(gè)user實(shí)體
public class User
{
public string Admin { get; set; }
public string Pwd { get; set; }
}
public class UserController : ApiController
{
[HttpPost]//沒有用restful風(fēng)格,需要自己定制用那種類型來處理
[Route("Login")]
public string Login(User user)
{
return "OK";
}
[HttpGet]
[Route("Message")]
public IHttpActionResult GetMessage() {
//ok 200 //成功
//notfound 404
//InternalServerError 500 服務(wù)器錯(cuò)誤
// return InternalServerError(new Exception("nicuo l "));
return Ok(new Students()
{
Id = 80,
Name = "及格了"
});
}
}
//根據(jù)自定義的url給服務(wù)器傳data數(shù)據(jù) 驗(yàn)證登錄賬號(hào)和密碼
$.ajax({
url: "/api/User/Login",
type: "post",
data: {
Admin: "admin",
Pwd:"123456"
}
})
$.ajax({
url: "/api/User/Message",
type: "get",
}).done(function (data) {
console.log("成功了",data)
})