使用 ASP.NET Core MVC 建立 Web APIhtml
使用 ASP.NET Core MVC 建立 Web API(一)api
使用 ASP.NET Core MVC 建立 Web API(二)瀏覽器
1) 在Visual Studio 2017中的「解決方案資源管理器」中雙擊打開BookController文件,添加Get方法的API。代碼以下。
async
// GET: api/Book [HttpGet] public async Task<ActionResult<IEnumerable<Book>>> GetBookItems() { return await _context.Book.ToListAsync(); } // GET: api/Book/5 [HttpGet("{id}")] public async Task<ActionResult<Book>> GetBookItem(int id) { var bookItem = await _context.Book.FindAsync(id); if (bookItem == null) { return NotFound(); } return bookItem; }
using Microsoft.EntityFrameworkCore;添加到文件開頭。2)將上面的代碼添加到BookController文件中後,會在ToListAsync方法下出現波浪線,
這時須要把
3) 這兩個方法實現兩個 GET 終結點:post
GET /api/book
GET /api/book/{id}
4) 在Visual Studio 2017中按F5,運行應用程序。而後在瀏覽器中分別調用兩個終結點來測試應用。測試
5) 在瀏覽器中輸入「http://localhost:5000/api/book」查詢全部書籍信息,以下圖。spa
6) 在瀏覽器中輸入「http://localhost:5000/api/book/8」查詢指定有書籍信息,以下圖。3d
[HttpGet]
屬性表示響應 HTTP GET 請求的方法。 每一個方法的 URL 路徑構造以下所示:code
Route
屬性中以模板字符串開頭: namespace BookApi.Controllers { [Route("api/[controller]")] [ApiController] public class BookController : Controller { private readonly BookContext _context;
[controller]
替換爲控制器的名稱,按照慣例,在控制器類名稱中去掉「Controller」後綴。 對於此示例,控制器類名稱爲「Book」控制器,所以控制器名稱爲「Book」。 ASP.NET Core 路由不區分大小寫。[HttpGet]
屬性具備路由模板(例如 [HttpGet("Book")]
),則將它追加到路徑。 此示例不使用模板。 在下面的 GetBookItem
方法中,"{id}"
是書籍信息的惟一標識符的佔位符變量。 調用 GetBookItem
時,URL 中 "{id}"
的值會在 id
參數中提供給方法。htm
// GET: api/Book/5 [HttpGet("{id}")] public async Task<ActionResult<Book>> GetBookItem(int id) { var bookItem = await _context.Book.FindAsync(id); if (bookItem == null) { return NotFound(); } return bookItem; }
本教程使用 Rester 測試 Web API。
1) 安裝Firefox的組件Rester
2) 在Visual Studio 2017中啓動 Web 應用程序。
3) 打開Rester。
4) 建立新請求,將 HTTP 方法設置爲「GET」,將請求 URL 設置爲 http://localhost:5000/api/Book/24。以下圖。
5) 選擇「Send」。 返回結果,以下圖。