RESTfulなHTTPサービスを実装するためのAPIの定義方法の基礎を説明する。APIを基礎から解説している。Worldコードを確認しただけであったが、今回から本格的な実装の解説に入る。APIにおいて、最低限必要になる実装は、「ルーティングの設定」と「APIコントローラの実装」である。今回〜次回は、そのうちの「APIコントローラの実装」について解説を行う*1。APIのバージョンは1とする*2。ルーティングの設定については、第4回目で紹介する予定だ。APIのバージョンは2なので注意。以降の解説にて、バージョン2との違いがある場合は随時補足する。はじめに本稿(今回〜次回)の目次は、以下のとおりとなる。HTTPレスポンスの内容を指定する今回〜次回は、より実践的なAPIコントローラの実装方法を学ぶため、以下の2つの要素を取り入れて解説する。実装に入る前にはまず、どのようなAPIを定義するかを決定する必要がある。APIは、RESTfulなHTTPサービスを提供することに特化したフレームワークであるため、初めにRESTfulなAPIを定義する方法について紹介する。APIの振る舞いは、データの基本処理であるCRUDを想定し、サーバとクライアントの間でどのようなHTTPリクエスト、HTTPレスポンスのやりとりが行われるか、例を挙げながら解説する。APIコントローラを実装する際は、ぜひ本稿を参考にしていただきたい。Web)のスキャフォールディング機能*3により自動生成されるAPIコントローラ・クラスのコードだ。APIの基本パターンを実装しているという側面も併せ持つ。スキャフォールディングにより自動生成されるAPIコントローラ・クラスのコード(リスト1)と、定義されるAPIを図で表したもの(図1)を掲載する。CRUDの対象となるデータは、例として顧客データ(今回のサンプルのために定義したCustomerクラス)とした。以降、このAPIコントローラ・クラスで定義されるAPI(顧客APIと呼称する)を引用しながら解説を行うので、今は簡単に眺め、必要なときに参照してほしい。スキャフォールディング機能とは、開発者が定義するモデルから、APIコントローラ・クラスのコードを自動生成する機能だ。スキャフォールディング機能で軽々DB連携アプリケーション」)。サービス」を参考のこと。顧客APIコントローラ・クラスが定義するAPIスキャフォールディング機能より生成されるAPIコントローラ・クラスが定義するAPIを図で表したもの。IEnumerable<Customer>型に変換して返す。一致するデータ存在しない場合は、ステータス・コード404を返す。Customerデータを返す。モデルに検証エラーが存在する場合は、ステータス・コード400とエラー内容を返す。ステータス・コード400を返す。Customerデータを更新する。データベースに変更をコミットする。ステータス・コード404と例外のメッセージを返す。データの変更処理が正常に終了した場合、ステータス・コード200を返す。Customersテーブルに新しいデータを追加する。追加したCustomerデータを取得するためのURLを返す。モデルに検証エラーが存在する場合は、ステータス・コード400とエラー内容を返す。一致するデータ存在しない場合は、ステータス・コード404を返す。データベースに変更をコミットする。ステータス・コード404と例外のメッセージを返す。削除したCustomerデータを返す。顧客APIコントローラ・クラス各メソッド内で、顧客データをデータベースへの登録/取得/更新/削除が行われている。Framework*4を採用している。プライベート・フィールド変数「db」......(1)に対して操作を行っている箇所がデータベースへアクセスする部分である。Web)のスキャフォールディング機能で生成したコードである。2013のスキャフォールディング機能で生成されるコードとは、一部が違うので注意。4.1の目玉機能「コード・ファースト」を理解しよう』を参考のこと。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。