MS .NET
Para integrar sus aplicaciones usando Microsoft .NET con edinn a través de la API, necesitará un entorno de desarrollo en su lenguaje de programación preferido.
En este ejemplo usaremos VB.NET para conectar con la plataforma edinn, obtendremos el árbol de áreas y procesos y nos desconectaremos de la plataforma.
Este ejemplo necesita el paquete NuGet "Newtonsoft.Json", que se puede instalar desde el entorno de programación Microsoft Visual Studio.
Podemos realizar este ejemplo en solo tres pasos:
1º Crear una aplicación de Windows universal:
Abrimos Microsoft Visual Studio 2019 Community.
En “Tareas iniciales”, seleccionamos “Crear un proyecto”.
En el buscador de plantillas escribimos “uwp basic”.
En la lista que aparece seleccionamos “Aplicación vacía (Windows universal)” con la etiqueta Visual Basic y pulsamos “siguiente”.
Elegimos en nombre de al aplicación y la carpeta destino y pulsamos “crear”.
2º Pegar el código de ejemplo:
En el explorador de soluciones, abrimos el archivo MainPage.xaml.
Aparecerá una ventana de vista previa y otra con el xml del interfaz.
Dentro de la sección “Grid” pegaremos el código siguiente:
<StackPanel x:Name="frmLogin" HorizontalAlignment="Stretch"> <TextBlock Text="edinn API tester" FontSize="14" FontWeight="Bold" /> <TextBox x:Name="txtCompany" PlaceholderText="company" /> <TextBox x:Name="txtUser" PlaceholderText="user" /> <TextBox x:Name="txtPass" PlaceholderText="password" /> <Button x:Name="cmdLogin" Content="Login" Click="cmdLogin_Click" HorizontalAlignment="Stretch" /> <TextBox x:Name="txtSession" Text="" TextWrapping="Wrap" PlaceholderText="session"/> <Button x:Name="cmdTree" Content="Get Tree" HorizontalAlignment="Stretch" Click="cmdTree_Click"/> <Button x:Name="cmdLogout" Content="Logout" HorizontalAlignment="Stretch" Click="cmdLogout_Click"/> <TextBox x:Name="txtResponse" Text="" TextWrapping="Wrap" IsReadOnly="True" Height="180" PlaceholderText="response"/> </StackPanel> |
Abriremos en documento MainPage.xaml.vb que contiene el código fuente.
Importaremos la librería Http al comienzo del código.
' The Blank Page item template is documented at https://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409 |
Imports System.Net.Http |
''' <summary> ''' An empty page that can be used on its own or navigated to within a Frame. ''' </summary> Public NotInheritable Class MainPage Inherits Page End Class |
Copiaremos el código siguiente a continuación de la declaración de la clase.
' The Blank Page item template is documented at https://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409 Imports System.Net.Http ''' <summary> ''' An empty page that can be used on its own or navigated to within a Frame. ''' </summary> Public NotInheritable Class MainPage Inherits Page |
Private Sub cmdLogin_Click(sender As Object, e As RoutedEventArgs) Handles cmdLogin.Click txtResponse.Text = "" Dim lStr = session_post() txtResponse.Text = lStr End Sub Private Sub cmdTree_Click(sender As Object, e As RoutedEventArgs) txtResponse.Text = "" Dim lStr = tree_get() txtResponse.Text = lStr End Sub Private Sub cmdLogout_Click(sender As Object, e As RoutedEventArgs) txtResponse.Text = "" txtResponse.Text = session_delete() End Sub Private Function session_post() As String Dim client As New HttpClient ''' IMPORTANT! Change the url according to your server IP ad PORT ''' Dim url As String = "http://localhost:8080/sessions" Dim values As New Dictionary(Of String, String) values("company") = txtCompany.Text values("user") = txtUser.Text values("password") = txtPass.Text Try Dim content As New FormUrlEncodedContent(values) Dim response As New HttpResponseMessage response = client.PostAsync(url, content).Result Return response.Content.ReadAsStringAsync().Result Catch ex As Exception Return ex.Message End Try End Function Private Function session_delete() As String Dim client As New HttpClient ''' IMPORTANT! Change the url according to your server IP ad PORT ''' Dim url As String = "http://localhost:8080/sessions/" & txtSession.Text & "?company=" & txtCompany.Text Try Dim request As New HttpRequestMessage(HttpMethod.Delete, New Uri(url)) Dim response As New HttpResponseMessage response = client.SendAsync(request).Result Return response.Content.ReadAsStringAsync().Result Catch ex As Exception Return ex.Message End Try End Function Private Function tree_get() As String Dim client As New HttpClient ''' IMPORTANT! Change the url according to your server IP ad PORT ''' Dim url As String = "http://localhost:8080/tree?company=" & txtCompany.Text & "&session=" & txtSession.Text Try Dim response As New HttpResponseMessage response = client.GetAsync(New Uri(url)).Result Return response.Content.ReadAsStringAsync().Result Catch ex As Exception Return ex.Message End Try End Function |
End Class |
3º Particularizar URL y probar:
Si tenemos un servidor de edinn en nuestro propio equipo, una compañía creada y un usuario, podremos usar la aplicación tal como está. Sino, debemos cambiar en el código fuente la dirección a la que queremos conectar.
Para cambiar la dirección de nuestro servidor de edinn, simplemente, cambiamos “localhost” por la IP o el DNS de nuestro servidor. Si nuestro servidor tiene certificado, podremos usar https en lugar de http.
El funcionamiento de la aplicación de test es el siguiente:
Login: Se rellena el campo “company”, “user” y “password” y se pulsa “Login”. En la casilla “response” aparecerá la respuesta al login. En la casilla “response” se verá el código de sesión.
Get Tree: Para obtener el árbol de áreas y procesos, rellenamos el campo “company”, pegamos el código de sesión en la casilla “sessión” y pulsamos “Get Tree”. En la casilla “response” se verá el árbol de áreas y procesos.
Logout: Para terminar una sesión, rellenamos el campo “company”, pegamos el código de sesión en la casilla “sessión” y pulsamos Logout. En la casilla “response” se verá la respuesta.
A partir de este punto, consultando la ayuda de la API ya se pueden implementar las llamadas a las funciones disponibles.