JHipsterドメイン言語(JDL) - 入門
概要
このページでは、JDLとアプリケーションとその周辺のすべてを作成する方法について学びます。
コンテンツの生成
ファイルの使用
JDLファイルを使用してエンティティを生成できます。
- 拡張子が'.jh'または'.jdl'のファイルを作成します。 アプリケーション、デプロイ、エンティティ、およ びリレーションシップを宣言するか、またはJDL-StudioやJHipster IDEを使ってファイルを生成、ダウンロードします。
- エンティティのみを作成する場合は、JHipsterアプリケーションのルートフォルダで
jhipster jdl my_file
を実行します。 - アプリケーションを作成する場合は、フォルダ内で
jhipster jdl my_file.jdl
を実行します。
ジャジャーン おしまいです!
チームで作業する場合は、1つではなく複数のファイルが必要になることがあります。 その場合、手動ですべてのファイルを1つに連結するのではなく、次のコマンドを実行します。
jhipster jdl my_file1.jdl my_file2.jdl
JDLのインポート中にエンティティを再生成したくない場合は --json-only
フラグを使用して
エンティティ作成部分をスキップし、.jhipster
フォルダ内のファイルのみを作成します。
jhipster jdl ./my-jdl-file.jdl --json-only
デフォルトではjdl
は変更されたエンティティのみを再生成します。すべてのエンティティを再生成したい場合は
--force
フラグを渡します。
これにより、エンティティファイルに対するローカルの変更がすべて上書きされることに注意してください。
jhipster jdl ./my-jdl-file.jdl --force
JDLをプロジェクトで使用する場合は、次のようにして追加できます。
npm install jhipster-core --save
ローカルにインストールされ、package.json
に書き込まれます。
インラインJDLの使用
コンテンツを生成するもう1つの方法は、次のようにCLIでJDLコードを渡すことです。
jhipster jdl --inline "application { config { baseName jhipster, applicationType microservice } }"
.
このコンテンツの生成方法は、エンティティを生成する場合に特に便利です。
ここでは、コンテンツを生成するさまざまな方法を理解するために、小さなJDLコンテンツから始めます。 ここでは生成に焦点を当てます。構文については他のセクションで説明します。
ここでは、基本的なコンテンツを使用します。
application {
config {
baseName jhipster
applicationType microservice
}
}
これは、"jhipster"という名前の非常に基本的なマイクロサービスアプリケーションです。このサンプルから アプリケーションを生成するさまざまな方法について説明します。
この小さなサンプルで、アプリケーションをゼロから作成できることがわかります。
リモートJDLファイルを使用する
URLは jdl
コマンドを使用します。次のように、ファイル名の代わりにURLを渡してください。
jhipster jdl https://my-site.com/my.jdl
jhipster jdl https://gist.githubusercontent.com/user/id/raw/id/myapp.jdl
ファイル名を指定するだけで、JDLサンプルリポジトリからリモートJDLファイルを取得もできます。URLは自動的に解決されます。
jhipster jdl default.jdl
アプリケーションの生成
前の例で見たように、アプリケーションの生成は非常に簡単です。前の例を見てみましょう。 さらに要素を追加します。
application {
config {
baseName jhipster
applicationType microservice
serverPort 4242
buildTool gradle
}
}
内訳を見てみましょう。
application
は、アプリケーションであることの宣言を示すキーワードです。config
は、設定を宣言したいことを示します。- 後で説明しますが、アプリケーションでエンティティの宣言もできます。
baseName
、applicationType
などは、アプリケーションを微調整するためのキーワードです。
これが、JDLを使用してアプリケーションを作成する方法です。 サポートされているすべてのアプリケーションのオプションを確認するには、このページに移動します。
エンティティの生成
エンティティの生成はそれほど簡単ではありません。 専用のエンティティページにアクセスして、エンティティで実行できる操作の詳細を確認できます。
基本的なエンティティの生成
entity A
このエンティティにはフィールドがなく、明示的なテーブル名もありません(ただしJHipsterはエンティティの 名前からテーブル名を設定します)。 これは、エンティティを宣言する最も簡単な方法です。
この形式は次と同じです。
entity A(a) {}
テーブル名と中括弧が追加されました。 デフォルトでは、JHipsterは指定されたエンティティ名に基づいてテーブル名を生成します。
中括弧は、フィールドを宣言するときに必要です。
コメントの追加
エンティティにコメントを追加する方法は、次のとおりです。
/**
* This is a simple entity
*/
entity A
バックエンドがJavaの場合は、Javadocコメントが追加されます。
アプリケーション内のエンティティ
アプリケーション内の一部のエンティティのみを生成するには、entities
キーワードを使用できます。
application {
config {}
entities A, B
}
application {
config {}
entities C
}
entity A
entity B
entity C
これはマイクロサービスアーキテクチャでは特に有用です。
フィールドの生成
フィールドは、エンティティに対してボディを指定することによって、エンティティで宣言されます。
entity MyEntity {
name String
closed Boolean
}
これらの2つの型以外にもあります。エンティティとフィールドのページで確認してください。
コメントと検証の追加
エンティティにコメントを追加したのと同じ方法で、フィールドにコメントを追加できます。
entity MyEntity {
/** My field */
name String required minlength(2) maxlength(50)
}
検証はフィールド型によって異なり、エンティティとフィールドのページにも詳細が記載されています。
列挙型
列挙型は、固定値を持つ型です。
enum Type {
A,
B(b)
}
entity E {
name Type
}
列挙型の値がオプションであることに注意してください。
ただ一つのrequired
の検証を持っています。
enumの詳細については、専用のenumページを確認できます。