
Кроки предоставляет унифицированный API при поддержке Blockdiag (Blockdiag, Seqdiag, Actdiag, Nwdiag, Packetdiag, Rackdiag), BPMN, Bytefield, C4 (с Plantuml), D2, DBML, Diagrams.net (экспериментальный Graphviz, Mermaid, Nomnoml, Pikchr, Plantuml, Svgbob, Symbolator, Umlet, Vega, Vega-Lite, Wavedrom и Wireviz ... и больше!
В этом разделе предлагается базовое руководство для оценки Кроки. Более полные инструкции по установке находятся в документации Kroki.
Кроки использует простой алгоритм (дефлят + base64), чтобы кодировать вашу диаграмму в URL:
GET /plantuml/svg/SyfFKj2rKt3CoKnELR1Io4ZDoSa70000
Вы также можете позвонить Кроки с POST :
ПОЧТА /
{
"diagram_source" : " Bob -> Alice : hello " ,
"diagram_type" : " plantuml " ,
"output_format" : " svg "
}В этом случае вам не нужно кодировать свою диаграмму.
Также можно отправить вашу диаграмму в виде простого текста, используя заголовок Content-Type . Выходной формат будет указан с использованием заголовка Accept , а источник диаграммы будет отправлен в качестве корпуса запроса:
Post /plantuml
Accept: image/svg+xml
Content-Type: text/plain
Bob -> Alice : hello Вы также можете определить выходной формат в URL -адресе, если не хотите добавлять заголовок Accept :
Post /plantuml /svg
Content-Type: text/plain
Bob -> Alice : helloТа же концепция применяется при отправке диаграммы как JSON:
Post /plantuml /svg
{
"diagram_source" : " Bob -> Alice : hello "
}Кроки имеет модульную архитектуру:
Веб -сервер Java (питание от Vert.x ), который действует как шлюз. Croki Server создан с использованием Maven.
Крошечный Java API на вершине Умлета (MINI) для генерации диаграмм.
Node.js cli на вершине библиотеки диаграмм nomnoml .
Node.js cli на вершине библиотеки диаграмм Vega . Также поддерживает лаконичную грамматику Vega-Lite.
Сопутствующий веб -сервер, написанный в JavaScript (питается на микро ), который предоставляет библиотеку диаграмм русалки .
Сопутствующий веб-сервер, написанный в JavaScript (питается на микро ), который предоставляет библиотеку диаграмм BPMN-JS .
Node.js cli на вершине библиотеки диаграмм Bytefield-SVG .
Node.js cli на вершине библиотеки диаграммы WaveDrom .
Спутниковый веб -сервер, написанный в JavaScript (питается на микро ), который обеспечивает Excalidraw .
Сопутствующий веб -сервер, написанный в JavaScript (питается на микро ), который предоставляет Diagrams.net .
Первый шаг - создать проект с помощью Maven:
$ Make Builderver
Чтобы построить все изображения Docker, используйте следующую команду:
$ sudo Make BuldDockerimages
Примечание | sudo может не понадобиться в зависимости от вашего распределения и конфигурации docker . |
Как только изображения Docker будут созданы, вы можете запустить Kroki с помощью docker :
$ docker run -d -p 8000: 8000 yuzutech/kroki
Если вы хотите использовать одну из следующих библиотек схемы, вам также нужно будет запустить соответствующий контейнер сопутствующего сопутствующего:
Русалка
BPMN
Экклидрау
Diagrams.net
Вы можете использовать docker-compose для запуска нескольких контейнеров:
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 -d