標籤:style blog http color io os 使用 ar strong
前言
HTTP 不是只是為了服務的 web 頁。這也是建設公開服務和資料的 Api 的強大平台。HTTP 是簡單的、 靈活的和無處不在。你能想到的幾乎任何平台有 HTTP 庫,因此,HTTP 服務可以達到範圍廣泛的客戶,包括瀏覽器、 行動裝置和傳統的傳統型應用程式。
ASP.NET Web API 是一個用於構建 web Api 在.NET 架構上架構。在本教程中,您將使用 ASP.NET Web API 來建立一個 web API 返回的產品列表。
建立一個 Web API 項目
在本教程中,您將使用 ASP.NET Web API 來建立一個 web API 返回的產品列表。前端的 web 頁中使用 jQuery 來顯示結果。
啟動 Visual Studio 時,從起始頁中選擇新的項目。或者,從檔案菜單中,選擇建立和項目.
在模板窗格中,選擇已安裝的模板並展開節點Visual C# 。在Visual C#,選擇Web。在項目模板的列表中,選擇ASP.NET Web 應用程式。命名項目"ProductsApp",並單擊確定.
在新的 ASP.NET 項目對話方塊中,選擇的空模板。根據"添加檔案夾和核心的參考檔案",選中Web API。單擊確定. 如
您還可以建立一個 Web API 項目,使用"Web API"模板。Web API 模板使用 ASP.NET MVC 提供了 API 的協助頁面。我在本教程中使用空模板,因為我想要讓沒有 MVC Web API。一般情況下,你不需要知道 ASP.NET MVC 中使用 Web API。
添加一個模型
模型是一個對象,表示您的應用程式中的資料。ASP.NET Web API 可以自動序列化到 JSON、 XML 或其他格式,您的模型,然後將序列化的資料寫入到 HTTP 響應訊息的本文。只要用戶端可以讀取序列化格式,它可以還原序列化的對象。大多數用戶端可以解析 XML 或 JSON。此外,用戶端可以表明哪一種格式它希望通過在 HTTP 要求訊息中設定 Accept 標題。
如果方案總管中不可見,請單擊視圖菜單中,選擇方案總管。在方案總管中,按右鍵模型檔案夾。從操作功能表中,選擇添加,然後選擇類.
命名類"Product"。將以下屬性添加到 Product
類。
using System;using System.Collections.Generic;using System.Linq;using System.Web;namespace WebApiDemo.Models{ public class Product { public int Id { get; set; } public string Name { get; set; } public string Category { get; set; } public decimal Price { get; set; } }}
添加控制器
在 Web API 中,控制器是一個處理 HTTP 要求的對象。我們將添加一個控制器,可以返回由 ID 指定一個單一的產品的列表
注如果您已經使用 ASP.NET MVC,你控制器已經熟悉了。Web API 控制器類似於 MVC 控制器,但而不是控制器類ApiController類繼承。
在方案總管中,按右鍵控制器檔案夾。選擇添加,然後選擇控制器.
在添加腳手架對話方塊中,選擇Web API 控制器-空。單擊添加.
腳手架建立一個名為控制器檔案夾中的 ProductsController.cs 檔案。
你不需要把您的控制器放進一個檔案夾命名為控制器。檔案夾名稱是捷徑來組織您的源檔案。
如果沒有開啟此檔案,則請雙擊檔案以開啟它。此檔案中的代碼替換為以下內容:
using System.Linq;using System.Net;using System.Net.Http;using System.Web.Http;using WebApiDemo.Models;namespace WebApiDemo.Controllers{ public class ProductsController : ApiController { Product[] products = new Product[]{ new Product{Id=1,Name="Toky1",Category="中國1",Price=1}, new Product{Id=2,Name="Anglelaf",Category="中國2",Price=3.75M} , new Product{Id=3,Name="Sendnal",Category="中國3",Price=16.99M} }; public IEnumerable<Product> GetAllProducts() { return products; } public IHttpActionResult GetProduct(int id) { var product = products.FirstOrDefault((p)=>p.Id==id); if (product == null) { return NotFound(); } return Ok(product); } }}
View Code
為了保持樣本簡單,產品儲存在一個固定的數組,在控制器類的內部。當然,在實際的應用中,你會查詢資料庫,或使用一些其他外部資料源。
控制器定義返回的產品的兩種方法:
GetAllProducts
方法返回整個清單上的產品作為一種IEnumerable < 產品 >類型。
GetProduct
方法尋找一個單一的產品,通過其 id。
就是它 !你有一個工作網路功能 API。每個控制器上的方法對應於一個或多個 Uri:
Controller Method |
URI |
GetAllProducts |
/api/products |
GetProduct |
/api/products/id |
ASP.NET Web API 2 入門(一)