Skip to content

RESTful Api

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

Carter Module

Lo unico imprescindible que necesitamos crear para empezar a recibir llamadas HTTP, en un CarterModule similar a como veniamos trabajando con NancyFx. En el mismo podemos declarar los metodos HTTP que nuestra API necesita atender.

public class ProductsModule : CarterModule
{
    public ProductsModule() : base("/products")
    {
        Get("/", async (req, res) => await res.WriteAsync("The list of products"));


        Get("/{id}", async (req, res) => await res.WriteAsync($"The product with ID {req.RouteValues.As<int>("id")}"));

        });
        Post("/", async (req, res) => {

        });
    }
}

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. Carter escaneará e identificará todos los tipos que son descendientes del tipo CarterModule.

IMPORTANTE

Se debe agregar el paquete de Carter al proyecto principal para que los modulos sean detectados automaticamente.

Injeccion de dependencias y CarterModules

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

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

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

      Get("/SomePath"}, async (req, res) => {
        _logger.LogInformation("Some log here ...");
         await res.WriteAsync("Something");
      });
    }
  }