Niestety, ale bardzo poważnie zaciąłem się przy integracji z PayU, w związku z tym dzisiaj post o tym co zrobiłem jakiś tydzień temu. Mianowicie – odkryłem, że na śmierć zapomniałem dodać do projektu elementy WebAPI w momencie jego tworzenia. Nie wszystko stracone, bo dodanie API do projektu nie jest co prawda tak banalne jak zaznaczenie checkboxa przy tworzeniu nowego projektu, ale jest naprawdę niewiele bardziej skomplikowane.
NuGet
Zaczniemy oczywiście od zainstalowania odpowiedniego NuGeta, którym jest Microsoft ASP.NET Web API . I na tym moglibyśmy skończyć, ale warto się rozejrzeć za innymi NuGetami, które mogą być niezbędne do poprawnej współpracy naszej aplikacji z API. W moim wypadku była to maleńka paczka o wiele mówiącej nazwie Autofac.WebApi2.
Routing i podstawowa konfiguracja
Po instalacji NuGeta musimy skonfigurować oddzielny routing i podstawową konfigurację. Zrobiłem to dodając plik WebApiConfig.cs do katalogu App_Start. Znajduje się w nim domyślny routing i konfiguracja Formatera używanego przy serializacji jsonów.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
using System.Web.Http; namespace YumYum.App_Start { public static class WebApiConfig { public static void Register(HttpConfiguration config) { //WebAPI routes config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute( name: "DefaultAPI", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); //Setup json serialization var formatter = GlobalConfiguration.Configuration.Formatters.JsonFormatter; formatter.SerializerSettings.ContractResolver = new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver(); } } } |
Tak przygotowaną konfigurację musimy wrzucić do pliku Global.asax.cs. Wystarczy nam do tego jedna dodatkowa linijka w metodzie Application_Start():
1 |
GlobalConfiguration.Configure(WebApiConfig.Register); |
I już?
Na tym można by było zakończyć podstawową konfigurację. Niestety w zależności od bibliotek, z których korzystamy, mogą być konieczne dodatkowe kroki. W moim przypadku był to tylko Autofac, który wymagał ode mnie dodatkowych 5 minut. Nie jest to więc nic trudnego i wymaga jedynie rzutu oka na dokumentację biblioteki, która będzie sprawiać problemy w nowych warunkach.