2017年9月24日 星期日

[MVC] Routing Engine - WabAPI (4)

  • 先前介紹網頁的 Routing Engine,而在 WebAPI 的 Routing Engine 是獨立分開
    • Step 1. 創建空專案為 WebAPI 
    • Step 2. App_Start 中 WebApiConfig.cs 為 WebApi 的 Routing Engine
using System.Web.Http;

namespace MVCWebApi
{
    public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            // Web API 設定和服務

            // Web API 路由
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
        }
    }
    • Step 3. Global.asax 中也有註冊
using System.Web.Http;

namespace MVCWebApi
{
    public class WebApiApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            GlobalConfiguration.Configure(WebApiConfig.Register);
        }
    }
}
    • Step 4. 創建 API Controller
    • Step 5. 預設會幫你建立一組完整的 HTML API,而 Controller 繼承為 ApiController
using System.Collections.Generic;
using System.Web.Http;

namespace MVCWebApi.Controllers
{
    public class DemoController : ApiController
    {
        // GET: api/Demo
        public IEnumerable Get()
        {
            return new string[] { "value1", "value2" };
        }

        // GET: api/Demo/5
        public string Get(int id)
        {
            return "value";
        }

        // POST: api/Demo
        public void Post([FromBody]string value)
        {
        }

        // PUT: api/Demo/5
        public void Put(int id, [FromBody]string value)
        {
        }

        // DELETE: api/Demo/5
        public void Delete(int id)
        {
        }
    }
}
    • Step 6. 測試,如有特殊的 Routing 一樣需在 WebApiConfig 中註冊

沒有留言:

張貼留言