servicestackAan de slag met servicestack


Opmerkingen

Deze sectie geeft een overzicht van wat servicestack is en waarom een ontwikkelaar het misschien wil gebruiken.

Het moet ook alle grote onderwerpen binnen de servicestack vermelden en naar de gerelateerde onderwerpen verwijzen. Aangezien de documentatie voor servicestack nieuw is, moet u mogelijk eerste versies van die gerelateerde onderwerpen maken.

Installatie of instellingen

U kunt ServiceStack op 3 manieren installeren:

  • Volledige Visual Studio-sjablonen (zelf gehost)
  • Begin helemaal opnieuw ServiceStack Zelf gehost (console-app)
  • Voer ServiceStack uit in Asp.net MVC.

Volledige visuele studiosjablonen

U kunt hier informatie over vinden: https://github.com/ServiceStack/ServiceStackVS .

  1. Download de servicestack Visual studio-plug-in: https://visualstudiogallery.msdn.microsoft.com/5bd40817-0986-444d-a77d-482e43a48da7
  2. Start een nieuw project in Visual Studio en kies een van de sjablonen.

Begin helemaal opnieuw (Selfhosted)

Ga voor een complete gids hier: https://github.com/ServiceStack/ServiceStack/wiki/Self-hosting

Opzetten:

  1. Maak een console-applicatie
  2. installeer ServiceStack via nuget: Install-Package ServiceStack
  3. Stel uw basiscode in. ServiceStack gebruikt een AppHost om alles samen te dijen:
 //This your main entry point of the application
 public class AppHost : AppSelfHostBase {
    public AppHost() 
      : base("HttpListener Self-Host", typeof(HelloService).Assembly) {}

    public override void Configure(Funq.Container container) { }
}

//Run it!
static void Main(string[] args)
{
    var listeningOn = args.Length == 0 ? "http://*:1337/" : args[0];
    var appHost = new AppHost()
        .Init()
        .Start(listeningOn);

    Console.WriteLine("AppHost Created at {0}, listening on {1}", 
        DateTime.Now, listeningOn);

    Console.ReadKey();
}
 

Nu kunt u beginnen met het ontwikkelen van uw API-services.

Mvc-integratie

Voor complete Mvc-integratiehandleiding: https://github.com/ServiceStack/ServiceStack/wiki/Mvc-integration

Download eerst uw nuget-pakketten: Install-Package ServiceStack.Mvc

Stel uw ServiceStack Apphost in

public class AppHost : AppHostBase
{
    public AppHost() : base("MVC 4", typeof(MyServices).Assembly) {}

    public override void Configure(Container container)
    {            
        SetConfig(new HostConfig { 
            HandlerFactoryPath = "api" 
        });

        ControllerBuilder.Current.SetControllerFactory(
            new FunqControllerFactory(container));
    }
}

//Bootstrap your appHost through MVC Global.asax:
public class Global : System.Web.HttpApplication
{
    protected void Application_Start(object sender, EventArgs e)
    {
        new AppHost().Init();
    }
}
 

Om ServiceStack-services nu uit te voeren, kunnen we web.Config toevoegen om ServicStack onder een bepaald pad te laten werken, bijvoorbeeld: /api/*

<location path="api">
  <system.web>
    <httpHandlers>
      <add path="*" type="ServiceStack.HttpHandlerFactory, ServiceStack" 
           verb="*"/>
    </httpHandlers>
  </system.web>

  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
    <validation validateIntegratedModeConfiguration="false" />
    <handlers>
      <add path="*" name="ServiceStack.Factory" 
           type="ServiceStack.HttpHandlerFactory, ServiceStack" verb="*" 
           preCondition="integratedMode" 
           resourceType="Unspecified" allowPathInfo="true" />
    </handlers>
  </system.webServer>
</location>