Skip to content

RESTful Api

Para la creacion de una RESTful Api, Platform utiliza NancyFx.

Nancy Module

Lo unico imprescindible que necesitamos crear para empezar a recibir llamadas HTTP, en un NancyModule. En el mismo podemos declarar los metodos HTTP que nuestra API necesita atender.

public class ProductsModule : NancyModule
{
    public ProductsModule() : base("/products")
    {
        Get("/", parameters => { 
            return "The list of products"; 
        });
        Get("/{id}", parameters => {
            return $"The product with ID {parameters.id}";
        });
        Post("/", parameters => {

        });
    }
}

Los módulos se descubren globalmente

Los módulos se pueden declarar en cualquier lugar que desee (Como buena practica todos los modulos se estan creando en una carpeta llamada Modules), siempre que estén disponibles en el dominio de la aplicación en tiempo de ejecución. Nancy escaneará e identificará todos los tipos que son descendientes del tipo NancyModule.

Injeccion de dependencias y NancyModules

Como cualquier otro componente dentro de nuestra aplicacion, todas las dependencias que sean necesarias se injectan en el constructor del modulo.

  public class HomeModule : NancyModule
  {
    private readonly ILogger<HomeModule> _logger;

    public HomeModule(ILogger<HomeModule> logger)
    {
      _logger = logger;

      Get("/SomePath"}, _ => {
        _logger.LogInformation("Some log here ...");
        return "Something";
      });
    }
  }