Ir al contenido principal

Entradas

Mostrando entradas de mayo, 2024

GraphQL en un vistazo

  El sitio oficial de GraphQL lo define como: Un lenguaje de consulta para su API y un tiempo de ejecución del lado del servidor para ejecutar consultas utilizando un sistema de tipos que usted define para sus datos. Es decir: Un lenguaje de consulta para APIs y Un entorno para ejecutar consultas para obtener solo los datos necesarios. GraphQL es una herramienta poderosa para trabajar con APIs porque permite: Consultar solo los datos que necesitas. Utilizar un único endpoint para todas las solicitudes. Mejorar el rendimiento y la eficiencia. Facilitar el desarrollo y la flexibilidad. Podemos usar Node JS para crear algún ejemplo. Primero validamos si tenemos npm y nodejs instalado: node -v npm -v Creamos un proyecto mkdir proyecto cd proyecto npm init -y Instalamos GraphQL y Apollo Server: npm install apollo-server graphql Creamos el archivo JS:  index.js const { ApolloServer, gql } = require( 'apollo-serve

gRPC en Java (y Protobuff)

En este post vamos a ejecutar el ejemplo de cliente-servidor de gRPC para Java del repositorio oficial y crearemos un sencillo ejemplo con Protobuff. En resumen: Clonar el repositorio oficial de gRPC. Ejecutarlo. Crear un proyecto Java con Maven. Modificar el proyecto.  Agregar Gradle en lugar de Maven. Ejecutar el proyecto Protobuf con Gradle. Clonamos el repositorio de ejemplos para Java: $ git clone -b v1. 63.0 --depth 1 https: //github.com/grpc/grpc-java Nos ubicamos en la carpeta de Java: $ cd grpc-java/examples Compilamos el cliente y servidor: $ ./gradlew installDist Abrimos una terminal para ejecutar el servidor: $ ./build/install/examples/bin/hello-world-server Abrimos otra terminal para ejecutar el cliente: $ ./build/install/examples/bin/hello-world-client Si todo funciona podrás ver lo siguiente: INFO: Server started, listening on 50051 En el lado del servidor, y en el lado del cliente: INFO: Will try to greet world ...

gRPC: protobuff (Protocol Buffers)

Los Protocol Buffers son mecanismos extensibles neutrales al idioma y a la plataforma para serializar datos estructurados. Al compilar un archivo *.proto podemos elegir lenguajes como: Java, PHP, C#, Python y otros más. Una definición de proto podría lucir así: person.proto message Person { optional string name = 1 ; optional int32 id = 2 ; optional string email = 3 ; } Y al generarse el código, por ejemplo en Java, la definición podría emplearse de la siguiente forma: Person juan = Person . newBuilder () . setId ( 1234 ) . setName ( "Juan aldama" ) . setEmail ( "juan.aldama@spgf.dev.com" ) . build (); output = new FileOutputStream ( "salida.dat" ); juan . writeTo ( output ); Pero... ¿cómo instalamos Protobuf? Para Windows podemos usar Chocolatey: $ choco install protoc Para Windows también podemos optar por descargar: https : // github . com / google / protobuf / releases