Cargar y utilizar una clase desde la clase principal de nuestra Azure Function
En esta entrada, voy a explicar cómo podemos crear y utilizar una clase desde nuestra Azure Function.
En general, lo que tendremos es la clase principal y entrada de ejecución de nuestra Azure Function, y que corresponde con el código del fichero run.csx.
Adicionalmente, voy a crear una clase de nombre Person que contenga el nombre, apellidos y correo electrónico.
Esta clase estará dentro del archivo Person.csx.
Crearé la base de nuestra Azure Function utilizando la plantilla HTTP Trigger con C# como lenguaje de programación.
Como nombre y detalles de creación de nuestra Azure Function de prueba, indicaré los siguientes:
Pulsaremos el botón Create para crear la Azure Function.
Una vez que tenemos creada nuestra Azure Function con la plantilla por defecto, vamos a ir a la solapa View files y vamos a agregar un nuevo archivo al que llamaremos Person.csx haciendo clic sobre el icono Add.
Agregaremos como hemos indicado, el archivo con nombre Person.csx.
Dentro de esta clase escribiremos el siguiente código:
#r "Newtonsoft.Json" using Newtonsoft.Json; public class Person { [JsonProperty(PropertyName = "firstname")] public string Username { get; set; } [JsonProperty(PropertyName = "lastname")] public string Lastname { get; set; } [JsonProperty(PropertyName = "email")] public string Email { get; set; } }
A continuación, iremos al fichero run.csx y escribiremos el siguiente código:
#r "Newtonsoft.Json" #load "./Person.csx" using Newtonsoft.Json; using System.Configuration; using System.Net; using System.Text; public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log) { dynamic data = await req.Content.ReadAsAsync<object>(); var person = new Person(); person.Username = data.firstname; person.Lastname = data.lastname; person.Email = data.email; return req.CreateResponse(HttpStatusCode.OK, $"Registrado para {person.Username} {person.Lastname} {person.Email}"); }
Si observamos el código, a través de #load estaremos cargando el código de Person.csx, lo cuál nos da la posibilidad de cargar la clase y utilizarla.
Una vez que hemos completado todo, ahora sólo nos queda probar que lo que hemos hecho, y sobre todo la utilización de la clase definida en otro fichero de código, es viable y funciona tal y como esperamos.
Para la prueba, he preparado un JSON como el siguiente:
{ "firstname": "Jorge", "lastname": "Serrano", "email": "foo@foo.com" }
Una vez ejecutada la prueba, veremos que el resultado que obtenemos es similar al siguiente:
Como podemos ver, la utilización de ficheros o clases con Azure Functions es bastante sencilla.
Espero que te sirva.
Happy Coding!