標籤:
在很多跨平台的應用中就需要Web API ,比如android與資料庫的互動。
Create a Web API Project
選擇建立項目下的模板下的Visual C#節點下的Web節點,在模板列表下選擇ASP.NET Web 應用程式,並命名為ChatApp就可以了。
在建立ASP.NET項目下選擇Web API 點擊確定就可以了。
Adding a Model
在解決方案下建立一個Model
//建立Model Usernamespace APP_Chat.Models{ public class User { public string UID { get; set; } public string LoginName { get; set; } public string Name { get; set; } public string Pwd { get; set; } public DateTime CreateTime { get; set; } }}
//建立Model ResponseLoginStatenamespace APP_Chat.Models{ public class ResponseLoginState { public User user { get; set; } public int state { get; set; } public string msg { get; set; }
}}
// 建立Model RequestLoginnamespace APP_Chat.Models{ public class RequestLogin { public string LoginName { get; set; } public string Pwd { get; set; } }}
Adding a Controller
在解決方案下建立一個控制器
選擇一個空的模板即可
下面就添加控制器的名稱(Controller命名是有規範的,不能更改後面的Controller部分也不能在後門添加字元,不然都會導致最後無法訪問到這個Controller像這個Controller就是通過/api/ChatApp/訪問的,當然預設是Get的請求方式)
namespace APP_Chat.Controllers{ public class ChatAppController : ApiController { /// <summary> /// 使用者登入 /// </summary> /// <param name="user">使用者的登入名稱 - LoginName,密碼 - Pwd</param> /// <returns>登入成功則返回使用者的資訊,和state=1</returns> [HttpPost] http 請求方式 [HttpPost]
public ResponseLoginState Login(RequestLogin user) { if (string.IsNullOrWhiteSpace(user.LoginName)) return new ResponseLoginState() { state = 0, msg = "參數錯誤,LoginName未傳出!" }; if (string.IsNullOrWhiteSpace(user.Pwd)) return new ResponseLoginState() { state = 0, msg = "參數錯誤,Name未傳出!" }; #region using (var conn = new System.Data.OracleClient.OracleConnection(OracleHelper.ConnString)) { conn.Open(); var command = conn.CreateCommand(); command.Parameters.Clear(); command.Parameters.Add(new OracleParameter(":loginName", user.LoginName)); command.Parameters.Add(new OracleParameter(":pwd", user.Pwd)); command.CommandText = "select * from APP_ChatUser where loginname=:loginName and pwd=:pwd"; var reader = command.ExecuteReader(); User loginuser = new User(); try { reader.Read(); loginuser.UID = reader["USERID"].ToString(); loginuser.LoginName = reader["LOGINNAME"].ToString(); loginuser.Name = reader["NAME"].ToString(); loginuser.Pwd = reader["PWD"].ToString(); loginuser.CreateTime = Convert.ToDateTime(reader["CreateTime"]); return new ResponseLoginState() { state = 1, msg = "success", user = loginuser }; } catch (Exception ex) { return new ResponseLoginState() { state = 0, msg = ex.Message, user = null }; } } #endregion } }}
通過訪問api/ChatApp/Login就可以訪問WebApi了
JavaScript來檢測WebApi
<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> <script src="Scripts/jquery-1.10.2.min.js"></script> <script> var user; function login() { $.ajax({ url: ‘/api/ChatApp/Login‘, type: ‘POST‘, dataType:‘JSON‘, data: { LoginName: ‘zhangsan‘, Pwd: ‘123‘ }, success: function (data) { if (typeof (data) != ‘object‘) data = JSON.parse(data); user = data.Data.User; alert(JSON.stringify(data)); } }); } </script></head><body> <input type="button" value="登入" onclick="login()" /></body></html>
如果有不清楚,可以參照下面的這個網址學習http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/tutorial-your-first-web-api
簡單記錄在Visual Studio 2013中建立ASP.NET Web API 2