Saltar al contenido

Construyendo y conectando ASP.NET Web API para IoT

Como sabemos, nuestro servicio es un servicio básico basado en HTTP que puede ser consumido fácilmente usando cualquier cliente HTTP. La mayoría de los marcos proporcionan soporte para la comunicación HTTP y cada sistema operativo tiene APIs que permiten la comunicación basada en HTTP a través de la red.

Básicamente, no tendrás que preocuparte por nada antes de empezar a trabajar. Los clientes HTTP se proporcionan en C#, Java, C++, Python, y casi todos los demás lenguajes de programación, para facilitar la comunicación en la red de la aplicación. Te guiaré a través de los clientes HTTP de la plataforma .NET que permiten la comunicación HTTP con tus servicios.

Construyendo y conectando ASP.NET Web API para IoT
Construyendo y conectando ASP.NET Web API para IoT

HttpCliente

El marco de trabajo .NET usualmente usa el objeto HttpClient (contrasta esto con el WebClient). Esto proporciona a sus aplicaciones acceso a la comunicación de la red y le permite enviar solicitudes con los verbos HTTP como GET, POST, etc. También puedes publicar el contenido en el servidor después de serializar los datos para los procesos de publicación.

Al igual que otros objetos ID, HttpClient también permite dejar el resto de la limpieza de la memoria y disponer de los recursos al .NET framework. De esta manera, podrás concentrarte en la programación de la red y no en la limpieza de la memoria, la mayor parte del tiempo.

A continuación, veamos cómo conectarse a los servicios usando el objeto HttpClient en aplicaciones .NET.

La función principal del programa se vería algo así:

1234567// // Namespace importusing System.Net.Http;// En lo profundo de la funciónusing(var client =newHttpClient()){// Utiliza la API aquí.}

csharp

Esta es la plantilla que debe utilizar para consumir el servicio de aplicación. Por ejemplo, el programa básico para obtener un mensaje de «Hola mundo» de la API se vería así:

12345678910111213141516using(var client =newHttpClient()){// Se recomienda añadir una dirección base, en lugar de empujarla a las funciones de solicitud HTTP. client.BaseAddress =newUri("http://localhost:12345/");// Obtener la respuesta de la respuesta APIvar =await client. GetAsync("api/microcontroladores/");// Comprueba si la petición tuvo éxito.if(response.IsSuccessStatusCode){// Obtén el mensaje.var msg =await response.Content.ReadAsStringAsync(); Console.WriteLine(msg);// Hola, mundo!}}

csharp

De esta manera, puedes acceder a la API de forma remota. Los otros fundamentos de ASP.NET son similares. Por ejemplo, HttpClient permite utilizar otras funciones para realizar otras peticiones HTTP, como POST, en las que se consigue publicar algún contenido en los servidores. Tenga en cuenta que la publicación requiere un método un poco complejo en el que también tiene que envolver y pasar los datos en forma de una matriz de bytes al servidor. Estos datos se cargan y se leen en el lado del servidor.

En el caso de los microcontroladores, eso no tiene mucho sentido porque es poco probable que se transmitan medios (y por lo tanto se utilice una matriz de bytes). Por lo tanto, seguramente puede consultar uno de los muchos artículos sobre programación de redes en el marco de .NET sobre microcontroladores.