Mi primera API REST con NancyFx
En esta entrada vamos a programar nuestra primera API REST con NancyFx.
Para ello, iniciaremos un nuevo proyecto Web de tipo ASP.NET, utilizando para ello una plantilla vacía.
Al aceptar, aparecerá una nueva ventana en la que seleccionaremos como plantilla, la plantilla vacía de ASP.NET.
Nuestro proyecto tendrá en el Explorador de Soluciones un aspecto similar al que se indica en la siguiente imagen.
A continuación, agregaremos con NuGet el paquete Nancy.
También con NuGet, agregaremos el paquete Nancy.Hosting.Aspnet para hospedar nuestra App.
Este último realizará algunos cambios en el archivo de configuración Web.config.
Una vez que hemos creado el proyecto y hemos asignado al mismo los paquetes mínimos para poder hacer nuestra primera API REST con NancyFx, vamos a ponernos manos a la obra.
Lo primero que haremos será agregar una clase a nuestro proyecto.
En mi caso la he llamado HelloWorldModule.
No pasa nada si llamamos como queramos a nuestra clase, pero es recomendable utilizar las convenciones.
Por eso, he añadido la palabra Module al final, ya que esta clase por otro lado, tendrá que heredar de Nancy.NancyModule.
Para este primer ejemplo, crearé en el constructor una operación Get que devolverá el texto «Hello World«.
Las rutas quedarán definidas dentro de un módulo, que se encarga además, de definir el comportamiento.
La organización interna de donde poner estos módulos, corre a nuestro cargo, ya que NancyFx se encargará de buscar estos módulos por nosotros.
Lo realmente interesante es que podemos organizar nuestros módulos en ensamblados o carpetas diferentes.
Hablando nuevamente de las rutas, éstas serán definidas en el constructor del módulo de la forma Method + Pattern + Action + Condition (optional).
Es decir, una ruta quedará definida por:
- El método, que corresponde con el verbo a usar (DELETE, GET, HEAD, OPTIONS, PATCH, POST o PUT).
- El patrón, que establece la ruta o URL a la que debe responder NancyFx.
- La acción, que indica el comportamiento que debe lanzarse al realizarse una petición a una ruta concreta.
- La condición, es opcional, e indica que una ruta es sólo tenida en cuenta en determinadas circunstancias o condiciones.
En este ejemplo concreto, y con todo lo indicado anteriormente, nuestra clase quedará por lo tanto de la siguiente forma:
namespace WebAppNancyFx { public class HelloWorldModule : Nancy.NancyModule { public HelloWorldModule() { Get["/"] = _ => "Hello World!"; } } }
Si pulsamos F5 desde Visual Studio, arrancará nuestra aplicación Web, que irá a la ruta por defecto.
Ejecutando la llamada a nuestra API REST de ejemplo con Fiddler, veremos que efectivamente, a la llamada GET nos responde con un 200 OK.
Como vemos, hemos preparado nuestra primera API REST en tiempo récord sin casi esfuerzo.
Más adelante, tengo planeado mostrarte algún detalle más sobre la creación de API REST con NancyFx.
¡Happy Coding!