用ASP.NET Web API技术开发HTTP接口(一)
《轉(zhuǎn)載自 "浮點(diǎn)指向"》
啟動(dòng)Visual Studio 2015,新建一個(gè)ASP.NET Web應(yīng)用程序,命名為SimpleAPI。選擇Empty模板,并勾選“Web API”,無(wú)身份驗(yàn)證,不添加單元測(cè)試。
準(zhǔn)備用SQL Server數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)數(shù)據(jù),因此要安裝下Entity Framework框架,免去寫(xiě)繁瑣SQL語(yǔ)句的麻煩。打開(kāi)工具-》程序包管理器控制臺(tái)輸入以下命令安裝。
Install-Package EntityFramework在Web.config文件里配置數(shù)據(jù)庫(kù)連接代碼,打開(kāi)這個(gè)文件,在configuration節(jié)點(diǎn)內(nèi)添加連接字符串,其中星號(hào)部分換成SQLServer的數(shù)據(jù)庫(kù)名稱(chēng)。
<connectionStrings> <add name="DefaultConnection" connectionString="Data Source=Localhost;Initial Catalog=******;Integrated Security=SSPI;" providerName="System.Data.SqlClient" /> </connectionStrings>建立數(shù)據(jù)模型
在Models目錄下新建一個(gè)名為Friend.cs的類(lèi)文件。
public class Friend {public int ID { get; set; }public string FirstName { get; set; }public string LastName { get; set; }public string Address { get; set; }public string City { get; set; }public string PostalCode { get; set; }public string Country { get; set; }public string Notes { get; set; } }同時(shí)建立數(shù)據(jù)庫(kù)的Context類(lèi)文件。
public class FriendContext : DbContext {public FriendContext(): base("name=DefaultConnection"){}public DbSet<Friend> Friends { get; set; }protected override void OnModelCreating(DbModelBuilder modelBuilder){modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();} }說(shuō)明:
1、name=DefaultConnection要和Web.config中的數(shù)據(jù)庫(kù)連接字符串中的name一致。
2、OnModelCreating重載函數(shù)的作用是讓創(chuàng)建的數(shù)據(jù)表名稱(chēng)為單數(shù)格式,即為Friend,而不是Friends。
然后在程序包管理控制臺(tái)啟用Migrations,生成Migrations目錄,以及目錄中的Configuration.cs配置文件。
Enable-Migrations再依次執(zhí)行下面2條命令,就可以把剛才建立的數(shù)據(jù)模型導(dǎo)入到SQLServer中了,很方便。
Add-Migration xxx Update-Database其中xxx可任意填寫(xiě),VS會(huì)生成一個(gè)名為201508051223177_xxx.cs文件,201508051223177是當(dāng)前時(shí)間,文件包含Up和Down兩個(gè)方法。現(xiàn)在我們?cè)俚絊QLServer中刷新下查看,會(huì)發(fā)現(xiàn)一個(gè)名為Friend的數(shù)據(jù)表就建立好了。
下面利用Configuration.cs中的Seed函數(shù)添加一些測(cè)試數(shù)據(jù),在Seed方法下添加以下模擬數(shù)據(jù)。
var friend = new Friend {FirstName = "三",LastName = "張",Address = "南京西路",City = "上海",Country = "中國(guó)",PostalCode = "200041",Notes = "www.zhaomu.com" }; context.Friends.Add(friend); friend = new Friend {FirstName = "四",LastName = "李",Address = "三里屯",City = "北京",Country = "中國(guó)",PostalCode = "100600",Notes = "www.sohu.com" }; context.Friends.Add(friend); friend = new Friend {FirstName = "五",LastName = "王",Address = "花城大道",City = "廣州",Country = "中國(guó)",PostalCode = "510623",Notes = "www.163.com" }; context.Friends.Add(friend);然后執(zhí)行Update-Database命令后,這些數(shù)據(jù)就成功導(dǎo)入到SQL Server的數(shù)據(jù)表里面了。
創(chuàng)建控制器
在Controllers目錄下添加控制器,選擇“Web API 2 控制器 - 空”,我們將手工編寫(xiě)API程序的讀取、添加、修改、刪除各常用接口。控制器文件命名為FriendController.cs。
讀取Get方法,在FriendController.cs中添加以下代碼。
private FriendContext db = new FriendContext();public IEnumerable<Friend> Get() {return db.Friends.AsEnumerable(); }編譯后,我們?cè)L問(wèn)?http://localhost:61570/api/friend(61570是隨機(jī)端口),如果一切正常的話會(huì)出現(xiàn)以下XML格式的數(shù)據(jù),說(shuō)明數(shù)據(jù)讀取成功。
轉(zhuǎn)換成json格式顯示
現(xiàn)在比較流行json格式的API接口數(shù)據(jù),如果我們要讓數(shù)據(jù)以json格式顯示,需要修改App_Start目錄下的WebApiConfig.cs文件,在//Web API 配置和服務(wù)的注釋下添加以下代碼:
config.Formatters.Remove(config.Formatters.XmlFormatter); var jsonFormatter = config.Formatters.JsonFormatter; jsonFormatter.SerializerSettings.Formatting = Newtonsoft.Json.Formatting.Indented; jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();說(shuō)明:第一行是去掉默認(rèn)的XML格式,這樣輸出數(shù)據(jù)就會(huì)以json格式顯示,第三行是將輸出結(jié)果縮進(jìn)顯示,第四行則是將字段名稱(chēng)改成camelCase格式,即postalCode這樣的json統(tǒng)一格式。然后我們?cè)俅芜\(yùn)行,發(fā)現(xiàn)結(jié)果就是我們想要的了。
轉(zhuǎn)載于:https://www.cnblogs.com/DaiKeung/p/9120362.html
總結(jié)
以上是生活随笔為你收集整理的用ASP.NET Web API技术开发HTTP接口(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 修改Centos7的网卡ens32 改为
- 下一篇: .NET Core Community