LoginSignup
1
0

More than 5 years have passed since last update.

Grails 3.Xのcreate-appでrest-apiプロファイルのアプリを作成する(2)

Posted at

概要

Grails 3.2.7 でRESTのアプリのプロファイルを使ってお手軽にドメインを叩けるようにするまでのお話。前回はcreate-appからgenerate-allまでやったので、今回はRESTのAPIの叩き方とMySQL 5.7への接続の部分をまとめたいと思います。

使用環境

  • Windows7 64bit
  • posh-gvm
  • Grails 3.2.7
  • Groovy 2.4.9
  • MySQL 5.7.17
  • mysql-connector-java 6.0.6

手順

REST-APIの動作確認

前回作成したREST APIを叩く部分をもう少し掘り下げていきたいと思います。

MySQL 接続設定

Grails 3ではデフォルトのDB接続先はメモリDBのh2が指定されるようになっていて、これはこれで便利なのですが、実際にh2でプロダクト作ることはあんまりないと思うので、MySQLにつなぐやり方で接続の設定を入れていきたいと思います。

MySQL側セットアップ

ローカルにMySQL 5.7をインストールして、スキーマを作成する。
UTF8はutf8mb4を指定しておく。

WorkBench使えばGUIで設定できますが、念のためSQL書いておく。

CREATE SCHEMA myschema DEFAULT CHARACTER SET utf8mb4;

build.gradle

ビルドの依存関係にJDBCを追加しておく。
セントラルリポジトリは以下なので、適宜最新版なり対応しているバージョンを使う。

dependencies {
    //runtime "com.h2database:h2"
    runtime 'mysql:mysql-connector-java:6.0.6'
}

application.yml

Grails 3からConfig.groovyじゃなくてapplication.ymlで設定するのがお作法のようだ。
接続先データソースの設定とかは従来のGrailsやJDBCの接続URIと変わらないので、各自の環境に合わせて記載してください。
以下の例だとローカルに立てたMySQL 5.7のmyschemaにつなぐやり方です。

dialectは ORマッパー Hibernate の値を指定することになりますが、ドキュメント見ていくとMySQL57InnoDBDialectってのがあるのでコレっぽい感触。MySQL5Dialect とか MySQL5InnoDBDialect とかいろいろあってややこしい事この上ない。

environments:
    development:
        dataSource:
            dbCreate: create-drop
            url: jdbc:mysql://localhost:3306/myschema?useSSL=false&requireSSL=false&characterEncoding=utf8

dataSource:
    pooled: true
    jmxExport: true
    driverClassName: com.mysql.cj.jdbc.Driver
    dialect: org.hibernate.dialect.MySQL57InnoDBDialect
    username: mysql
    password: mysql

別記事でも書いてますが、SSLの設定はdevlopmentやらproductionで適宜変更してください。

昔とドライバのクラス名も変わってるので注意。

Windows環境だと出るっぽいトラブルもあったりします。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0