什麼是Web API
談談REST與ASP.NET Web API
怎樣了解 REST、RESTful
關于什麼是 Web API seaconch 也就不再這裡多說了
web api 是一個 面向資源(ROA) 通過 HTTP協定動詞來修改資源狀态的可自我寄宿(SelfHost)的接口
今天 seaconch 的主要目的是實作一個簡單的 ASP.NET Web API 栗子
建立一個 ASP.NET Web API 項目
1.建立項目

2.選擇 Web API
3.建立 Person 類
Person類:
/// <summary>
/// 人
/// </summary>
public class Person
{
public int ID { get; set; }
public string Name { get; set; }
public int Sex { get; set; }
public int Age { get; set; }
}
4.建立 Person_Context 類
Person_Context 類:
using System.Collections.Generic;
namespace chestnut_webapi.Models
{
public class Person_Context : System.Data.Entity.DbContext
{
public Person_Context()
: base("name=sc_db")
{ }
public System.Data.Entity.DbSet<Person> Persons { get; set; }
protected override void OnModelCreating(System.Data.Entity.DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<System.Data.Entity.ModelConfiguration.Conventions.PluralizingTableNameConvention>();
}
}
public class Db_Initer : System.Data.Entity.DropCreateDatabaseAlways<Person_Context>
{
protected override void Seed(Person_Context context)
{
context.Persons.Add(new Person()
{
Name = "毛毛",
Age = 13,
Sex = 1
});
context.Persons.Add(new Person()
{
Name = "團團",
Age = 12,
Sex = 2
});
base.Seed(context);
}
}
}
5.配置連接配接字元串
6.配置 EF 初始資料
對 Person 的 Get 請求
1.建立Controller
右鍵 Controllers 建立一個空的 API
2.GET:
public class PersonController : ApiController
{
Models.Person_Context person_db = new Models.Person_Context();
public List<Models.Person> Get()
{
return person_db.Persons.ToList();
}
}
3.調用API
這裡我們用小程式來測試效果
對 Person 的 POST 請求
1.Post
這裡我們在 Post API 中,添加了一個新的 Person -> 布布
public List<Models.Person> Post()
{
Models.Person p = new Models.Person()
{
ID = 1,
Name = "布布",
Age = 5,
Sex = 1
};
person_db.Persons.Add(p);
person_db.SaveChanges();
return person_db.Persons.ToList();
}
2.小程式代碼
相信有心的同學已經發現了,小程式中我們隻修改了method 由 GET -> POST
對 Person 的 PUT 請求
1.PUT
public List<Models.Person> Put()
{
Models.Person person = person_db.Persons.Where(p => p.Name == "團團").ToList().Single();
person.Name = "圓圓";
person_db.SaveChanges();
return person_db.Persons.ToList();
}
2.小程式代碼
結尾
至此,一個簡單的對 Person 進行 HTTP GET / POST / PUT 操作的 ASP.NET Web API 已經呈現在了大家面前
過程中我們也可以看到,為什麼說 ASP.NET Web API 是 ROA ?你也可以看到對于微信小程式而言,她僅僅是修改了請求 method,那麼就實作了對 Person 這個資源的不同操作
然而我們并沒有開放對于 Person 資源的 DELETE 請求方式,那麼相應的我們就等于并沒有對外開放 Person 的删除方式
好了,今天就到這啦,相信大家對于 ASP.NET Web API 也有了一個初步的認識
晚安