Boost」など、さまざまなカンファレンスを企画・運営しています。BOOKS(コードジン・ブックス)は、CodeZineの連載からカットアップした、開発現場の課題解決に役立つ書籍シリーズです。5まとめ次に、DB作成時に初期投入するデータ(fixtures)を作成します。File]を選択します。ファイル名を「/app/models/fixtures/initial_data.json」とし、[Create]を押します。空のファイルが作成されエディタが開くので、以下のとおり入力します。}]次に、作成したモデル定義と初期データを利用して、DBにテーブルを作成します。Prompt]を選択します。この画面から、sMashに対するコマンドを実行することができます。sync」と入力し、リターンを押します。TABLE文が自動生成され、実行されます。初期データも登録されていることが分かります。データベース構成を使用しています。successful次に、RESTサービスのハンドラーを実装します。/app/resources]を選択します。ファイル名を「/app/resources/books.groovy」とし、[Create]を押します。RESTサービスの実装となる、リソース・ハンドラーの雛型が自動生成されます。通常はここで生成されたメソッドの内部を実装することでリソースに対するCRUD操作を定義することになりますが、今回はサービスの実装をZRMに委譲するため、個別のメソッド実装は不要です。自動生成されたメソッドをすべて削除し、「ZRM.delegate()」の一行のみを記述します。以上で、RESTサービスの実装は終了です。次に、アプリケーションを起動して、RESTサービスをテストしてみましょう。画面右上の[Start]ボタン(緑色)をクリックします。起動が完了すると、ボタンが[Stop](赤色)に変化します。RESTサービスのテストには、FirefoxのPosterプラグインを利用すると便利です。ここではPosterプラグインを利用することを前提にテスト手順を説明します。Firefoxの右下隅にある黄色の[P]ボタンを押すとPosterプラグインが別ウィンドウで開きます。GETのテストを実行してみましょう。Posterの各プロパティを次のように構成し、ActionsセクションのHTTPメソッド(デフォルトではGETが選択されている)横の[GO]ボタンを押します。(デフォルト値)Responseウィンドウが表示されて、テキスト・エリアに次の3つの書籍情報がJSON形式で表示されたら、テストは成功です。21:39:21"}][Close]ボタンを押して、Responseウィンドウをクローズします。次に、POSTのテストを実行します。Posterの各プロパティを次のように構成し、ActionsセクションのHTTPメソッド(デフォルトではGETが選択されている)横の[GO]ボタンを押します。Byrne"}Responseウィンドウが表示され、上部にあるStatusが201となっていたら成功です。Responseウィンドウをクローズします。POSTで書籍情報が確かに追加されたか、GETリクエストを送信して確認してみます。Posterの各プロパティを次のように構成し、ActionsセクションのHTTPメソッド(デフォルトではGETが選択されている)横の[GO]ボタンを押します。URL:http://localhost:8080/resources/booksActions(HTTPメソッド):GETResponseウィンドウのテキスト・エリアに、下記のように4冊分の書籍情報がJSON形式で表示されたら、テストは成功です。今POSTリクエストで追加した書籍情報のidをメモしておきます(idは自動採番なので実行時に決まります。これ以降、POSTで追加された書籍情報のidを100として手順を説明しますが、みなさんは実行時に採番されたidで適宜読み替えて進めてください)。23:22:55"}][Close]ボタンを押して、Responseウィンドウをクローズします。次に、PUTのテストを実行します。Healing」に変更します。Posterの各プロパティを次のように構成し、ActionsセクションのHTTPメソッドの横の[GO]ボタンを押します。URL:http://localhost:8080/resources/books/100(上記URL中の「100」はPOSTで追加したレコードに動的に割り当てられたidの値です。Byrne"}Responseウィンドウが表示されます。上部にあるStatusが200となっていたら成功です。Responseウィンドウをクローズします。PUTで書籍情報が確かに更新されたか、GETリクエストを送信して確認してみます。Posterの各プロパティを次のように構成し、ActionsセクションのHTTPメソッド横の[GO]ボタンを押します。URL:http://localhost:8080/resources/books/100(上記URL中の「100」はPOSTで追加したレコードに動的に割り当てられたidの値です。Healingになっていたら、テストは成功です。23:32:09"}[Close]ボタンを押して、Responseウィンドウをクローズします。最後に、DELETEのテストを実行します。Posterの各プロパティを次のように構成し、ActionsセクションのHTTPメソッド横の[GO]ボタンを押します。URL:http://localhost:8080/resources/books/100(上記URL中の「100」はPOSTで追加したレコードに動的に割り当てられたidの値です。前の手順でメモした値を設定してください)Actions(HTTPメソッド):DELETEResponseウィンドウが表示されて、上部のStatusが200になっていれば、テストは成功です。[Close]ボタンを押して、Responseウィンドウをクローズします。これでテストはすべて完了ですので、Posterのウィンドウをクローズしてください。アプリケーションも停止しておきましょう。クリックしてください。ソフトウェア事業にてWebSphere関連製品のプリセールスを担当しつつ、これから「来そうな」技術をウォッチしています。ZeroがきっかけでGroovyにハマり、最近はGroovyの布教活動を進めています。NEW1DMM.comの施策から見る、事業をむしばむ「技術負債」への処方箋──リファクタリングの「言語化」でインシデントを予防2企業の7割超が「2025年の崖」を理解していないことが明らかに。NEW1DMM.comの施策から見る、事業をむしばむ「技術負債」への処方箋──リファクタリングの「言語化」でインシデントを予防2企業の7割超が「2025年の崖」を理解していないことが明らかに。NEW1DMM.comの施策から見る、事業をむしばむ「技術負債」への処方箋──リファクタリングの「言語化」でインシデントを予防2企業の7割超が「2025年の崖」を理解していないことが明らかに。12:00法務担当者、6割超が今後業務で「生成AIを使用したい」と回答。NEW新着記事一覧を見るイベント今後の予定を見るCodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。イラストの無断転載を禁じます。記載されているロゴ、システム名、製品名は各社及び商標権者の登録商標あるいは商標です。