Skip to content

Apicurio

¿Qué es?

Apicurio Registry es un almacén de datos para compartir esquemas de eventos estándar y diseños de API entre API y arquitecturas controladas por eventos. Puede usar Apicurio para desacoplar la estructura de sus datos de sus aplicaciones cliente y para compartir y administrar sus tipos de datos y descripciones de API en tiempo de ejecución utilizando una interfaz REST.

Ejecutando con entorno local

Encontrará un docker compose en la sección de Kafka / Quick Start, el cual correrá (entre varios otros) un contenedor de Apicurio Registry.

Una vez corriendo, se podrá acceder a el por localhost en el puerto 8081, o desde Docker Desktop (Windows y Mac) en el apartado de Containers / Apps :

Logo

Subir esquema por UI

Para subir un esquema primero debemos ingresamos a Apicurio, en la parte superior derecha aparecera Upload Artifact, como se muestra en la siguiente imagen:

Logo

Al hacer clic sobre Upload Artifact, aparecerá un formulario en donde podremos definir un Group & ID, el Type y Artifact

name descripción
ID El ID de grupo y de artifact son opcionales. Si el ID de artefacto se deja en blanco, el servidor generará uno.
Type Tipo de esquema: Avro Schema, Protocol Buffer, Schema JSON, Schema OpenAPI, AsyncAPI, GraphQL.
Artifact Podremos seleccionar / arrastrar / escribir nuestro esquema.

Logo

Subir esquema por API

Para subir un esquema por API se utiliza el bash. Mediante el comando curl se tiene que definir:

  curl -X POST -H "Content-type: application/json; artifactType=AVRO" \
   -H "X-Registry-ArtifactId: {namespace.name (com.example.price)}" \
   --data '{"type":"record","name":"price","namespace":"com.example", \
    "fields":[{"name":"symbol","type":"string"},{"name":"price","type":"string"}]}' \
   http://{URL_ServerApicurio}/api/artifacts
   curl -X POST -H "Content-type: application/json; artifactType=AVRO" \
  -H "X-Registry-ArtifactId: com.example.price" \
  --data '{"type":"record","name":"price","namespace":"com.example", \
   "fields":[{"name":"symbol","type":"string"},{"name":"price","type":"string"}]}' \
  http://apicurioregistry.apps.ocpprod.andreani.com.ar/api/artifacts
name descripción
artifactType Tipo de esquema, en este caso es AVRO
data Es el es esquema a enviar
X-Registry-ArtifactId ID del artifact ej: com.example.price
URL_ServerApicurio Dirección de apicurio