
Kroki provides a unified API with support for BlockDiag (BlockDiag, SeqDiag, ActDiag, NwDiag, PacketDiag, RackDiag), BPMN, Bytefield, C4 (with PlantUML), D2, DBML, Diagrams.net (experimental), Ditaa, Erd, Excalidraw, GraphViz, Sereia, Nomnoml, Pikchr, Plantuml, SvgBob, Symbolator, Umlet, Vega, Vega-Lite, Wavedrom e Wireviz ... e muito mais por vir!
Esta seção oferece um tutorial básico para avaliar o Kroki. Instruções de instalação mais abrangentes estão na documentação do Kroki.
Kroki usa um algoritmo simples (deflate + base64) para codificar seu diagrama no URL:
GET /plantuml/svg/SyfFKj2rKt3CoKnELR1Io4ZDoSa70000
Você também pode ligar para Kroki com POST :
PUBLICAR /
{
"diagram_source" : " Bob -> Alice : hello " ,
"diagram_type" : " plantuml " ,
"output_format" : " svg "
}Nesse caso, você não precisa codificar seu diagrama.
Também é possível enviar seu diagrama como texto simples usando o cabeçalho Content-Type . O formato de saída será especificado usando o cabeçalho Accept e a fonte do diagrama será enviada como o corpo de solicitação:
Post /Plantuml
Accept: image/svg+xml
Content-Type: text/plain
Bob -> Alice : hello Você também pode definir o formato de saída no URL se não quiser adicionar um cabeçalho Accept :
Post /plantauml /svg
Content-Type: text/plain
Bob -> Alice : helloO mesmo conceito se aplica ao enviar o diagrama como JSON:
Post /plantauml /svg
{
"diagram_source" : " Bob -> Alice : hello "
}Kroki tem uma arquitetura modular:
Um servidor da Web Java (alimentado pelo Vert.x ) que atua como um gateway. O servidor Kroki é construído usando o Maven.
Uma minúscula API Java no topo de umlet (mini) para gerar diagramas.
Uma cli node.js no topo da biblioteca NOMNOML Diagram.
Uma cli node.js no topo da biblioteca Vega Diagram. Também suporta a Gramática Concisa Vega-Lite.
Um servidor da Web complementar escrito em JavaScript (alimentado por micro ) que fornece a biblioteca de diagrama de sereia .
Um servidor da Web complementar escrito em JavaScript (alimentado por micro ) que fornece a biblioteca de diagrama BPMN-JS .
Uma cli node.js no topo da biblioteca de diagrama Bytefield-SVG .
Uma cli node.js no topo da biblioteca do diagrama onda .
Um servidor da Web complementar escrito em JavaScript (alimentado por micro ) que fornece Excalidraw .
Um servidor da Web complementar escrito no JavaScript (alimentado por micro ) que fornece diagramas.net .
O primeiro passo é construir o projeto usando o Maven:
$ Make BuildServer
Para construir todas as imagens do Docker, use o seguinte comando:
$ sudo fazer builddockerimages
Observação | sudo pode não ser necessário, dependendo da sua distribuição e configuração docker . |
Depois que as imagens do Docker forem construídas, você pode executar o Kroki usando docker :
$ Docker Run -d -p 8000: 8000 yuzutech/kroki
Se você deseja usar uma das seguintes bibliotecas de diagrama, também precisará iniciar o contêiner de companheiro correspondente:
Sereia
Bpmn
Excalidraw
diagramas.net
Você pode usar docker-compose para executar vários contêineres:
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 -Compõe Up -d