前言
這篇文章是入門級的實現(xiàn)瓶埋,在 聯(lián)系人SPA應用 系列中篮愉,準備引入WebAPI的時候,發(fā)現(xiàn)入門介紹占用太多篇幅集侯,影響了文章結構被啼,因此將此篇單獨出來帜消。
此文可以作為前端程序員了解后端開發(fā),后端程序員很忙浓体,或者想體驗一下后端開發(fā)時候的入門級參考資料泡挺。
后端程序員可以忽略之。
開發(fā)環(huán)境
Microsoft Visual Studio 2013
Visual basic.NET 語言
創(chuàng)建項目
- 打開Visual Studio 2013
-
新建一個空的ASP.NET Web應用程序項目命浴,命名為DemoSPA娄猫。
選擇Empty模板,一來可以避免VS自動引用一大堆無需使用的DLL以及Javascript生闲,二來通過從一個空的項目媳溺,逐步添加代碼及配置,可以更容易了解WebAPI的基本依賴及最小運行需求碍讯。
上圖是一個空的ASP.NET項目結構悬蔽。 -
Nuget添加Microsoft ASP.NET Web API 2.2 (最新版本5.2.3)
安裝Web API 2.2包,將自動安裝相應的依賴捉兴,如下圖所示蝎困。
-
添加全局應用程序類Global.asax
系統(tǒng)自動生成代碼
Imports System.Web.SessionState
Public Class Global_asax
Inherits System.Web.HttpApplication
Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
' 應用程序啟動時激發(fā)
End Sub
Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
' 會話啟動時激發(fā)
End Sub
Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs)
' 每個請求開始時激發(fā)
End Sub
Sub Application_AuthenticateRequest(ByVal sender As Object, ByVal e As EventArgs)
' 嘗試驗證用戶身份時激發(fā)
End Sub
Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
' 發(fā)生錯誤時激發(fā)
End Sub
Sub Session_End(ByVal sender As Object, ByVal e As EventArgs)
' 會話結束時激發(fā)
End Sub
Sub Application_End(ByVal sender As Object, ByVal e As EventArgs)
' 應用程序結束時激發(fā)
End Sub
End Class
- 添加Web API路由代碼
5.1 新建一個Startup文件夾,用于存放啟動時各種不同啟動配置
5.2 新建一個WebApiConfig類轴术,放在Startup文件夾下难衰,代碼如下
Imports System.Web.Http
Public NotInheritable Class WebApiConfig
Public Shared Sub Register(config As HttpConfiguration)
config.Routes.MapHttpRoute(name:="DefaultApi",
routeTemplate:="api/{controller}/{id}",
defaults:=New With {
.id = RouteParameter.Optional
})
End Sub
End Class
5.3 修改Global.asax,加入上面寫的WebAPI路由注冊代碼
Imports System.Web.SessionState
Imports System.Web.Http
Public Class Global_asax
Inherits System.Web.HttpApplication
Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
' 應用程序啟動時激發(fā)
GlobalConfiguration.Configure(AddressOf WebApiConfig.Register)
End Sub
因為GlobalConfiguration類定義于System.Web.Http命名空間逗栽,所以在這兒盖袭,需要先Import System.Web.Http,否則就需要寫成
System.Web.Http.GlobalConfiguration.Configure(AddressOf WebApiConfig.Register)
5.4 添加WebAPI控制器類ValuesController
Imports System.Net
Imports System.Web.Http
Public Class ValuesController
Inherits ApiController
' GET api/<controller>
Public Function GetValues() As IEnumerable(Of String)
Return New String() {"value1", "value2"}
End Function
' GET api/<controller>/5
Public Function GetValue(ByVal id As Integer) As String
Return "value"
End Function
' POST api/<controller>
Public Sub PostValue(<FromBody()> ByVal value As String)
End Sub
' PUT api/<controller>/5
Public Sub PutValue(ByVal id As Integer, <FromBody()> ByVal value As String)
End Sub
' DELETE api/<controller>/5
Public Sub DeleteValue(ByVal id As Integer)
End Sub
End Class
代碼看起來好多的樣子彼宠,但是實際上鳄虱,你一個字都不需要寫,上面這些全部是VS自動生成的凭峡,暫時一個字都不需要修改拙已。
5.5 運行
點擊Google Chrome,即可運行剛剛新出爐的WebAPI服務項目摧冀,如果你看到的是Internet Explorer倍踪,建議修改一下,否則你會失望的索昂。
運行后建车,看到如下界面
由于我們沒有編寫默認訪問頁面康谆,此處出現(xiàn)403錯誤是正常的领斥,我們只需要在URL后面加上“/api/values”即可以訪問剛剛編寫的ValuesController嫉到。
這是瀏覽器中看到的,
使用Postman
總結
這是一個Hello World級別的WebAPI入門指南爵卒,相對于微軟提供的整站WebAPI模板,優(yōu)點是排除了其他無關的干擾撵彻,所有的注意力集中在WebAPI的創(chuàng)建和服務提供钓株。