個 title 全英文,有啲唔慣,不過冇法,都唔知可以點加中文?最多係將 Framework 改做框架,框咩架吖,奇奇怪怪!
一年多前,我打算用 DreamFactory 嚟搞 REST API,當時用緊 v1.9.4,用得好開心,不過 DreamFactory 發展得好快,轉下眼就出 version 2.2,仲改埋個 license,收起啲 database connectors,以後要俾錢先可以 connect database。唔可以 connect database 即係冇用。
講到 RESTful 標準,.NET 有個 OData 仲有 Web API 可以搞 RESTful API,祇不過 Microsoft 嘅慣例就係會搞到啲嘢複複雜雜,你用佢哋嘅標準就得,你如果想用佢嘅 tools 嚟搞非 Microsoft 嘅嘢,你就死得,一定有手尾!
已經係 2016 年,Microsoft 衰咗好多年,佢話要參與 Open Source 亦都搞咗好幾年,今年特別積極,影響我嘅有:
- TFS Online 免費 account
- Visual Studio Code,當然仲有 Visual Studio 2015 Express
- 買咗 Xamarin 免費任用
- 搞咗 .NET Core 1.0 & ASP.NET Core 1.0,仲 Open Source 埋
- MS SQL 2016 for Linux
於是,我又「王者回歸」,升級我啲舊 projects 之餘,亦增加 mobile 嘅功能,講到 mobile 少不免要搞 REST API,原本打算用 Python 搞,不過又想試下用哂 .NET 搞,咁就 … Google 下。
is a RESTful API development framework for building standardized, OData V4 based RESTful services on .NET platform
Open Source,好似係 Microsoft 搞嘅 OData 旁支(NuGet 話嘅),放喺 GitHub 任用,班 contributors 好多中文名,咁就一定要撐下!
開波:
NorthWind RESTful API 大功告成!
送上 WebApiConfig 嘅 codes:
using NorthWindApi.Models; using System; using System.Collections.Generic; using System.Linq; using System.Web.Http; using System.Web.OData.Extensions; namespace NorthWindApi { public static class WebApiConfig { public static void Register(HttpConfiguration config) { // Web API configuration and services // Web API routes config.MapHttpAttributeRoutes(); config.EnableUnqualifiedNameCall(true); RegisterNorthWind(config, GlobalConfiguration.DefaultServer); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); } public static void RegisterNorthWind(HttpConfiguration config, HttpServer server) { config.MapRestierRoute<EntityFrameworkApi<NorthWindEdm>>( "NorthWind", "api/NorthWind", new RestierBatchHandler(server)); } } }
Chrome Extension REST Client plugin 我用哩隻:DHC REST Client
NorthWind database 我用哩個 Sql Script:Northwind Community Edition
預告一下,下次講 Custom Routing,即係除咗 CRUD 功能,我要做一啲自選功能。