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 :
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:
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. |
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 |