PlantUML Server

オンザフライでイメージを生成するのに、オンラインの Web サービスとして PlantUML を使うことができます。オンラインのデモンストレーションは http://www.plantuml.com/plantuml から試すことができます。また、手元の JEE Web アプリケーションサーバに PlantUML を インストール することもできます。

JEEアプリケーションサーバをインストールしたくない場合は、PlantUML PicoWeb Serverをローカルで実行することもできます。

対話型インターフェース

大きな入力フィールドはダイアグラムを記述するためのものです。任意のダイアグラムを入力してからsubmitボタンを押すと、下部に図が表示されます。 ダイアグラムは@startxxxキーワードで開始するように習慣づけると良いでしょう。

ダイアグラムを検証すると、そのダイアグラムをエンコードしたURLにリダイレクトされます。エンコード形式は複数行からなるダイアグラムよりも短くなるため、共有するのに適した形式です。また、ブラウザを使ってオンラインのPlantUMLサーバ上で簡単に表示することができます。

例えば、SyfFKj2rKt3CoKnELR1Io4ZDoSa70000は次のダイアグラムをエンコードしたものです:

@startuml
Bob -> Alice : hello
@enduml

初期表示するダイアグラム

デフォルトでは、PlantUMLサーバはBob -> Aliceのシーケンス図をサンプルとして表示します。しかし、ダイアグラムのエンコード形式を使用して他のダイアグラムを初期表示することもできます。 URLに/uml/ENCODEDを追加してください。

例えば、次のリンクhttp://www.plantuml.com/plantuml/uml/Aov9B2hXil98pSd9LoZFByf9iUOgBial0000では、シンプルなHello Worldのアクティビティ図を表示したPlantUMLサーバが開かれます。

メタデータ

PlantUMLは生成したPNGのメタデータに、ダイアグラムのソースコードをエンコードテキスト形式で保存します。そのため、画像のURLをクエリパラメータのmetadataとして与えることで、ソースコードを取り出すことが可能になっています。

例えば、http://i.stack.imgur.com/HJvKF.pngの画像からダイアグラムのソースコードを取り出したい場合、次のサーバリクエストを使います: http://www.plantuml.com/plantuml/?metadata=http://i.stack.imgur.com/HJvKF.png.

まるで魔法のようですが、これは非常に優れたエンジニアリングです :-)

ウェブサービスモード

PlantUMLサーバのウェブサービスインターフェースは開発者向けに用意されています。

PNGサービス

ダイアグラムをPNGファイルとして取得するには、次のURLスキームを使用します: /plantuml/png/ENCODED

SVGサービス

ダイアグラムをSVG XMLファイルとして取得するには、次のURLスキームを使用します: /plantuml/svg/ENCODED

すべてのダイアグラムがSVGとして出力できるわけではありません。例えば、ditaaはPNG形式のみ利用可能です。

アスキーアートサービス

UTF-8でエンコードされたダイアグラムをアスキーアート形式で取得するには、次のURLスキームを使用します: /plantuml/txt/ENCODED

アスキーアートを生成できるダイアグラムはシーケンス図のみです。

イメージマップサービス

前述のサービスで生成したPNG画像に対する、クライアントイメージマップを取得するには、次のURLスキームを使用します: /plantuml/map/ENCODED

<area>タグのリストが出力されます。各行が図の定義中に含まれるリンクに対応しています。

例えば次の:

@startuml
participant Bob [[http://plantuml.com]]
Bob -> Alice : [[http://forum.plantuml.net]] hello
@enduml

これにより、次の結果が得られます:

<map id="plantuml_map" name="plantuml_map">
<area shape="rect" id="id1" href="http://forum.plantuml.net" title="http://forum.plantuml.net" alt="" coords="38,50,199,65"/>
<area shape="rect" id="id2" href="http://plantuml.com" title="http://plantuml.com" alt="" coords="8,3,50,116"/>
</map>

完全なイメージマップを作るには、<area...タグを<map...タグの中に含める必要があることに注意してください。

プロキシサービス

プロキシサービスを使用すると、PlantUMLは、ダイアグラムのソースを別のサーバーにあるドキュメントから取ってくることができます。

プロキシサービスは、次のURLスキームを使用します: /plantuml/proxy?src=RESOURCE&idx=INDEX&fmt=FORMAT

次の例を試してください: http://www.plantuml.com/plantuml/proxy?src=https://raw.github.com/plantuml/plantuml-server/master/src/main/webapp/resource/test2diagrams.txt

リモートドキュメントのURLはパラメータとして指定するので、そのURL自体をURLエンコードする必要はありません。

PlantUMLサーバのインストール

PlantUMLサーバをJEE 5ウェブサーバにインストールするには、plantuml.warをダウンロードし、そのファイルをwebappフォルダにコピーします。

PlantUMLサーバはTomcat 6、7、Jetty 8、9で正常に動作することがテストされています。

ソースコード

PlantUMLサーバはオープンソースです。ソースコードはhttps://github.com/plantuml/plantuml-serverにあります。

(メインソースはhttps://github.com/plantuml/plantumlにあります。)