今回sbt-swagger-codegenで自動生成したroutesファイル。自動生成されたコードが本来格納されるディレクトリ。今回sbt-swagger-codegenで自動生成したコントローラやモデルなどのコードが格納される。今回はテストコードでslickのコードを生成するためのプログラムを書きました。Slickコードの自動生成ここからは、実際にSlickコードを自動生成する方法について述べます。Slickのコード生成をするためにsbtに以下を書き込みライブラリを追加します。"5.2.0")追加したらプロジェクトディレクトリ配下の「conf/db/migration/default」にflywayのファイル命名規則に則りDDLを作成します。作成したら以下のコードをテストディレクトリに作成します。注意)今回は諸々省くためにテストコードに実装を行なっております。}}以上を記載したら、ローカル環境でPostgreSQLを起動し、コードに記載した内容でログインできることを確認したのちに実行します。generator.slick.SlickCodeGenerator"実行が完了したら、プロジェクトディレクトリの「app/infrastructure/models/postgresql」にコードが生成されていると思います。Specからroutesファイルとコントローラ、モデルを生成していきます。sbtに以下のプラグインを追加します。frameworkのディレクトリレイアウトのプラグインは無効にします。Specを配置します。諸々の配置が完了したら以下のコマンドを実行します。compileコマンドの実行が完了すると、「target/scala-2.12/src_managed/main」配下にコードが作成されそれを含めた状態でアプリケーションをコンパイルしてくれます。まとめると・・・いかがslick-codegenとsbt-swagger-codegenを利用するために使った設定ファイルの内容です。file("target/scala-2.12/src_managed/main")以下に躓きやすいところを記載しておきます。frameworkのディレクトリレイアウトのプラグインを無効にするのか。frameworkのディレクトリレイアウトを利用するとコントローラのパッケージが「app/controllers」配下に固定されるので、コード生成したコントーラを読み込んでくれないためです。(もしかしたら他にやり方があるかもしれない)なぜPostgreSQLを使ってコード生成するのかh2を使って生成を試みたが、なぜかうまくいかなかったので泣く泣くPostgreSQLを利用しました。今後はh2で生成できるようにするつもりです。今回はSwaggerでの生成部分については「target/scala-2.12/src_managed/main」にコードを吐き出しましたが、Slickについてはそれができませんでした。理由はh2を利用してのコード生成ができなかったためです。h2が使えないと「target/scala-2.12/src_managed/main」にコードが吐けないかというと、このディレクトリは毎回コンパイルのたびにコードを生成するためのものを配置するようにできております。そのため、何度コンパイルしてもコード生成を成功させてコードを配置しなければならないのですが、flywayを使っている以上、重複してDDLを実行するとエラーになります。そのため今回のようにコードの生成を「app」配下にし固定することでこの問題を回避しました。今後はここの技術課題を克服してDAO部分も完全にコード管理しないようにしていきたいと思います。まとめ今回はコード生成に向けて色々と作り込みを行いました。この方法はあくまで少人数・・・というか個人で何かものを短期間で作らないといけない場合に有効だと思っております。ピーキーな実装が求められるところについてはあまりお勧めできませんが、人数に関係なくコード実装量を減らしてくれる上、コードの管理量も減るため、試しに採用してみてはいかがでしょうか。お久しぶりでございます。Pagesで複数SwaggerUIを自動で公開するこんにちは、開発部のomiです。Specificationを出力する。開発部のyanagitaです。Framework...2019-05-08Scalaから始めるRust入門お久しぶりでございます。Scalaでバックエンドを開発しているax...2018-08-01Excelとscalaのケースクラス間で入出力ができるライブラリをgithubに公開しましたscalaでバックエンドを開発しているaxtstar(@axtstart)です。Labとは、アスタミューゼのエンジニアとデザイナーのブログです。アスタミューゼの事業・サービスを支えている知識と舞台裏の今をブログとTwitterで発信しています。@astamuseLabアスタミューゼで働きませんか?アスタミューゼでは現在エンジニア、デザイナーを募集中です。興味のある方はぜひご応募ください。(1)@astamuseLabさんのツイートastamuseサービスサイトastamuse世界中のinnovatorのために、創造活動を可視化し未来を創るためのプラットフォームです。活用や新規事業に役立つ様々な機能を提供します。ビッグデータ分析から情報提供し、あなたの知らない未来を発見するメディアです。reserved.スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。