開発用のREST APIをDeploydで素早く構築

AngularJSの開発用やテスト環境のバックエンドAPIを高速に準備する

AngularJSの入門記事

Deploydで作るRESTful API

フロント側でAngularJSを利用してサーバ側と連携したサンプルアプリケーションを作る場合に

Deployd

というWebサービスを利用してREST APIをシンプルに構築できる。

install-deployd

インストール

DeploydのページにInstall deploydというリンクがあるので、今回は

deployd-win-0.6.1.exe

Windows用のexeファイルをダウンロードした。exeファイルをダブルクリックして次へでインストーラを進めていくとインストールが完了した。

セットアップの確認

コマンドプロンプトを起動済みの場合は一度終了してから再度起動する。

C:\deployed>dpd -V
0.6.1

Deploydのバージョンを確認するコマンドを実行して、バージョン番号が表示されれば正常にセットアップが完了している。

REST APIの作成

APIの作成は1つのdpdコマンドを実行することで完了し、データ登録用のWebインタフェースが設定される。セットアップされたWebインタフェースからデータを登録することで、REST APIが機能するようになる。

今回は、Cドライブの直下にdeploydというディレクトリを用意して、そのフォルダ内にAPIの構成ファイルを生成するようにした。

C:\deployed>dpd create sample
to start your app:
        $ cd sample
        $ dpd

C:\deployed\sample内は画像のように構成された。

deployd-directory

Deploydの起動

APIの作成が完了したらDeploydを起動する。以下のコマンドを実行する。

C:\deployed>dpd -p 5500 sample\app.dpd dashboard
starting deployd v0.6.1...
listening on port 5500
type help for a list of commands
dpd >

コマンドを実行してプロンプトが戻ってきたら、ブラウザで以下のURLにアクセスする。

localhost:5500/dashboard/

以下のWebインタフェースが表示される。

localhost-deployd

Collectionの作成

Webインタフェースでは任意のデータを登録することができる。まず、データベースのテーブルに相当するCollectionを作成する。

make-collection

new-collection

/postsというURLでpostsというCollectionを作成した。Createボタンを押すとデータ構造を定義するためのフォームが表示される。

collection-properties

上の画像の水色で囲った部分でデータの構造を選択し設定することができる。今回はtitleというプロパティを設定した。

data-properties

プロパティを定義したら、上の画像の水色で囲った[DATA]をクリックしてデータを登録していく。

データの登録

一行データを登録してみたのが以下の画像

deployd-data

idは自動でふられるようになっていて、編集・削除もできるようになっている。

Deploedの概念をRDBに置き換えると

  • Collection → table
  • Properties → field

に相当すると考えると馴染みやすいかもしれない。

REST APIへのアクセス

データの登録が完了したので、早速RESTful APIにアクセスしてみる。ブラウザから以下のURLにアクセスしてGETリクエストを送ってみる。

localhost:5500/posts

json-deployd-response

json形式でデータがレスポンスされた。

idを指定して個別のデータを取得する場合は以下のURLにアクセスする。

localhost:5500/posts/8dae92308c8f398b

POSTとPUTをCurlコマンドで実行

POSTメソッドとPUTメソッドはCurlを利用して以下のように実行した。HTTPヘッダーとして

Content-Type: application/json

を追加しないとエラーになるようなので、その点注意したい。

POST
C:\Users\Administrator>curl -i -X POST -d "{\"title\":\"test title2\"}" -H "Content-Type: application/json" http://localhost:5500/posts

HTTP/1.1 200 OK
Set-Cookie: sid=6bac550133e135e6e182d252d13ddcd4132a83d173d8bdb44102d405ede4d3bbc5b983feecae17419d7bff4763e7780c67eb6ed249974a7d40
5ca42f16485896; path=/; httponly
Content-Type: application/json
Date: Sun, 27 Apr 2014 22:39:00 GMT
Connection: keep-alive
Transfer-Encoding: chunked

{"title":"test title2","id":"aa679fcd69b99925"}
PUT
C:\Users\Administrator>curl -i -X PUT -d "{\"title\":\"test title UPDATE\"}" -H "Content-Type: application/json" http://localhost:5500/posts/8dae92308c8f398b

HTTP/1.1 200 OK
Set-Cookie: sid=77e8580c93015d02cd6cebcc2d7c474c4fefeaa0b85d532e090b2555679139aa0dd29dc8d22839c702ea83648ccd195ebd188bdbc645b0edf4
39911aad618ab8; path=/; httponly
Content-Type: application/json
Date: Sun, 27 Apr 2014 22:44:24 GMT
Connection: keep-alive
Transfer-Encoding: chunked

{"title":"test title UPDATE","id":"8dae92308c8f398b"}

DELETEメソッドについてもURLにidを引数として渡すやり方で実行できると思われる。

Deploydを利用すればAngularJSなどのフロントエンドのフレームワークを使った、バックエンド側と連携が必要なサンプルアプリのREST APIを迅速に開発することが可能。

Webエンジニアブログにコメント

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

開発用のREST APIをDeploydで素早く構築の記事にコメントを投稿