nancyAan de slag met Nancy


Opmerkingen

Over:

Nancy is een lichtgewicht framework voor het bouwen van op HTTP gebaseerde services in .Net op basis van het Sinatra-framework dat voor Ruby bestaat. Het is ontworpen om verschillende soorten HTTP-aanvragen te kunnen verwerken en biedt een eenvoudige manier om een antwoord met een kleine hoeveelheid code te retourneren.

Aanvullende bronnen:

versies

Versie Publicatiedatum
Nancy 1.4.3 2015/12/21
Nancy 1.4.2 2015/11/23
Nancy 1.4.1 2015/11/05
Nancy 1.4.0 2015/10/29
Nancy 1.3.0 2015/09/25
Nancy 1.2.0 2015/04/17
Nancy 1.1.0 2015/02/18
Nancy 1.0.0 2015/01/23

Maak een eenvoudige, zelfgehoste Nancy-applicatie

  1. Gebruik Nuget om de pakketten Nancy en Nancy.Hosting.Self in het project te installeren.
  2. Instantieeer een nieuw NancyHost-object en geef de relevante URL door
using( var host = new NancyHost( hostConfiguration, new Uri( "http://localhost:1234" ) ) )
{
    host.Start();
    Console.WriteLine( "Running on http://localhost:1234" );
    Console.ReadLine();
}

Plaats deze code in uw project op het moment dat u naar http-verkeer wilt gaan luisteren.

  1. Voeg een klasse toe aan uw project die erft van NancyModule en voeg een constructormethode toe.
public class FooModule : NancyModule
{
    public FooModule()
    {
    }
}
 
  1. Definieer routes in de constructor:
...
public FooModule()
{
    Get["Bar"] = parameters => {
        return "You have reached the /bar route";
    }
}
 

Stel Nancyfx in met Dotnet core v1.1, Kestrel en Visual Studio Code op * nix-systemen

Prerequiste stappen:

  1. Download dotnet-kern voor uw platform:

    Dotnet Core

  2. Volg de instructies en zorg ervoor dat de dotnet-kern werkt
  3. Download Visual Studio Code voor uw platform:

    VS-code

  4. Start Visual Studio Code (VS-code) en installeer de extensie C # en laad vervolgens opnieuw

Maak een zelf gehost NancyFx-project:

  1. Stel een project op met een correcte projectmapstructuur.

    Open Bash Terminal en typ:

    mkdir nancydotnetcore
    cd nancydotnetcore
    mkdir src 
    mkdir test
    touch global.json
    
  2. Open global.json en voer de volgende code in:
    {
        "projects":["src", "test"]
    }
    
  3. In Bash-terminal:
    cd src 
    mkdir NancyProject1
    dotnet new 
    

    Open de map NancyProject1 in de VS-code

    U krijgt een waarschuwing: "Vereiste activa om te bouwen en debuggen ontbreken in 'nancyproject1'."

    Klik op "Ja"

    Je zult ook zien: Er zijn onopgeloste afhankelijkheden van 'project.json'. Voer de herstelopdracht uit om door te gaan.

    Klik op "Sluiten". We komen hier binnenkort op terug.

  4. Voeg de afhankelijkheden toe, open "project.json" en overschrijf het met het volgende:
    {
        "version": "1.0.0-*",
        "buildOptions": {
            "debugType": "portable",
            "emitEntryPoint": true
        },
    
        "frameworks": {
            "netcoreapp1.1": {
                "dependencies": {
                    "Microsoft.AspNetCore.Hosting": "1.1.0",
                    "Microsoft.AspNetCore.Server.Kestrel": "1.1.0",
                    "Microsoft.AspNetCore.Owin": "1.1.0",
                    "Nancy": "2.0.0-barneyrubble",
                    "Microsoft.NETCore.App": {
                        "type": "platform",
                        "version": "1.1.0"
                    }
                }
            }
        }
    }
    

    VS-code zal vragen om te herstellen, klik op "Herstellen"

  5. Maak de map "Modules" in het VSCode-project

    Voeg in de map Modules een bestand met de naam "IndexModule.cs" toe en kopieer en sla het volgende op:

    namespace NancyProject1
    {
        using Nancy;
        public class IndexModule : NancyModule
        {
            public IndexModule()
            {
                Get("/", _ => "Hello dotnet core world!");
            }
        }
    }
    
  6. Maak in de hoofdmap van het project een bestand met de naam "Startup.cs" en kopieer en plak het volgende:
    namespace NancyProject1
    {
        using Microsoft.AspNetCore.Builder;
        using Nancy.Owin;
    
        public class Startup
        {
            public void Configure(IApplicationBuilder app)
            {
                app.UseOwin(x => x.UseNancy());
            }
        }
    }
    
  7. Open het bestand "Program.cs" en overschrijf de inhoud met het volgende en sla op:

    namespace NancyProject1
    {
        using System.IO;
        using Microsoft.AspNetCore.Builder;
        using Microsoft.AspNetCore.Hosting;
    
        public class Program
        {
            public static void Main(string[] args)
            {
                var host = new WebHostBuilder()
                    .UseContentRoot(Directory.GetCurrentDirectory())
                    .UseKestrel()
                    .UseStartup<Startup>()
                    .Build();
    
                host.Run();
            }
        }
    }
     
  8. Gedaan! Laten we dit nu uitvoeren en de uitvoer bekijken.

    Klik op het foutopsporingssymbool in VS Code en klik op de knop Uitvoeren. Het moet compileren en het project starten.

    Open de browser @ http: // localhost: 5000

  9. Klop jezelf op de rug en geniet ervan!