Kroki proporciona una API unificada con soporte para Blockdiag (Blockdiag, Seqdiag, ActDiag, NWDIAG, Packetdiag, Rackdiag), BPMN, Bytefield, C4 (con TELEML), D2, DBML, Diagramas. Graphviz, Mermaid, Nomnoml, Pikchr, Plantuml, Svgbob, Simbolator, Umlet, Vega, Vega-Lite, Wavedrom y WireViz ... ¡y más por venir!
Esta sección ofrece un tutorial básico para evaluar Kroki. Las instrucciones de instalación más completas están en la documentación de Kroki.
Kroki usa un algoritmo simple (desinflar + base64) para codificar su diagrama en la URL:
GET /plantuml/svg/SyfFKj2rKt3CoKnELR1Io4ZDoSa70000
También puedes llamar a Kroki con POST
:
CORREO /
{
"diagram_source" : " Bob -> Alice : hello " ,
"diagram_type" : " plantuml " ,
"output_format" : " svg "
}
En este caso, no necesita codificar su diagrama.
También es posible enviar su diagrama como texto sin formato utilizando el encabezado Content-Type
. El formato de salida se especificará utilizando el encabezado Accept
y la fuente del diagrama se enviará como el cuerpo de solicitud:
Post /plantuml
Accept: image/svg+xml
Content-Type: text/plain
Bob -> Alice : hello
También puede definir el formato de salida en la URL si no desea agregar un encabezado Accept
:
Post /plantuml /svg
Content-Type: text/plain
Bob -> Alice : hello
El mismo concepto se aplica al enviar el diagrama como JSON:
Post /plantuml /svg
{
"diagram_source" : " Bob -> Alice : hello "
}
Kroki tiene una arquitectura modular:
Un servidor web Java (alimentado por Vert.x ) que actúa como una puerta de enlace. El servidor Kroki está construido con Maven.
Una pequeña API Java sobre Umlet (Mini) para generar diagramas.
A Node.js CLI en la parte superior de la biblioteca del diagrama Nomnoml .
Un nodo.js cli en la parte superior de la biblioteca del diagrama de Vega . También es compatible con la gramática concisa de Vega-Lite.
Un servidor web complementario escrito en JavaScript (alimentado por Micro ) que proporciona la biblioteca de diagrama de sirena .
Un servidor web complementario escrito en JavaScript (alimentado por Micro ) que proporciona la biblioteca de diagrama BPMN-JS .
A Node.js CLI en la parte superior de la biblioteca de diagrama Bytefield-SVG .
Un nodo.js cli en la parte superior de la biblioteca del diagrama Wavedrom .
Un servidor web complementario escrito en JavaScript (alimentado por Micro ) que proporciona ExcalidRaw .
Un servidor web complementario escrito en JavaScript (alimentado por Micro ) que proporciona diagramas.net .
El primer paso es construir el proyecto usando Maven:
$ make buildServer
Para construir todas las imágenes de Docker, use el siguiente comando:
$ sudo make buildDockerImages
Nota | Es posible que no se necesite sudo dependiendo de su distribución y configuración docker . |
Una vez que se construyen las imágenes de Docker, puede ejecutar Kroki usando docker
:
$ Docker Run -D -P 8000: 8000 Yuzutech/Kroki
Si desea utilizar una de las siguientes bibliotecas del diagrama, también deberá iniciar el contenedor complementario correspondiente:
Sirena
Bpmn
Excalidraw
diagramas.net
Puede usar docker-compose
para ejecutar múltiples contenedores:
services :
core :
image : yuzutech/kroki
environment :
- KROKI_MERMAID_HOST=mermaid
- KROKI_BPMN_HOST=bpmn
- KROKI_EXCALIDRAW_HOST=excalidraw
ports :
- " 8000:8000 "
mermaid :
image : yuzutech/kroki-mermaid
expose :
- " 8002 "
bpmn :
image : yuzutech/kroki-bpmn
expose :
- " 8003 "
excalidraw :
image : yuzutech/kroki-excalidraw
expose :
- " 8004 "
# experimental!
diagramsnet :
image : yuzutech/kroki-diagramsnet
expose :
- " 8005 "
$ Docker -Compose Up -d