RESTfulなjsonAPIサーバ

2016/08/09

RESTfulなAPIサーバ

RESTfulAPIとは

まずはじめに,RESTとは,平たく言ってしまえばWebの設計思想の一つです.
RESTfulとは,RESTの設計思想に則ったモノというニュアンスで良いでしょう.
つまり,RESTfulAPIとは,RESTの設計思想に基づいたAPIという意味合いになります.

RESTの原則とは
この辺りの設計思想は人によって微妙に差異がありますので,あくまで軽く触れる程度にしておきます.   
1. ステートレスなクライアント/サーバプロトコル.
2. 明示的にHTTPメソッドを用いる.
3. 処理結果はHTTPステータスコードで返す.  
4. 直感的に理解できる,ディレクトリ構造に似たURLで公開する.   

より詳細に知りたい方は以下を参照すると良いでしょう.    
  • 一般的なMEANスタックと呼ばれるものと殆ど差異が無いと思います.

【原則1】アドレス可能な「リソース」 【原則2】統一インタフェース 【原則3】表現指向とハイパーメディア 【原則4】ステートレスな通信

M:MongoDB(ドキュメント指向データベース)
E:Express(Node.js上で動作するMVCフレームワーク)
A:AngularJS(フロントエンドのJavaScript用MVWフレームワーク)
N:Node.js(サーバーサイドJavaScriptの実行環境)

APIのリファレンス

Route HTTP Verb Description
/api GET テストメッセージをPOSTする.
/api/users POST ユーザを作成する
/api/users GET 全てのユーザ情報を取得する.
/api/users/:user_id GET UserIDに一致するユーザ情報を取得する.
/api/users/:user_id PUT UserIDに一致するユーザ情報を更新する.
/api/users/:user_id DELETE UserIDに一致するユーザ情報を削除する.

ディレクトリ構成

$ tree .
jsonAPI
├── server.js
├── package.json
├── app
│   └── models
│       └──user.js
└── node_module    

  • package.jsonの作成
$ npm init

package.json
{
    "name": "jsonAPI",
    "main": "server.js",
    "dependencies": {
        "express": "~4.0.0",
        "mongoose": "~3.6.13",
        "body-parser": "~1.0.1"
    }
}
  • “超”簡単なapiサーバの作成
server.js
// server.js

// 必要なパッケージの読み込み
var express    = require('express');
var app        = express();
var bodyParser = require('body-parser');

// POSTでdataを受け取るための記述
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());

// 3000番を指定
var port = process.env.PORT || 3000;

// expressでAPIサーバを使うための準備
var router = express.Router();

router.use(function(req, res, next) {
    console.log('Something is happening.');
    next();
});

// 正しく実行出来るか左記にアクセスしてテストする (GET http://localhost:3000/api)
router.get('/', function(req, res) {
    res.json({ message: 'Successfully Posted a test message.' });
});


// ルーティング登録
app.use('/api', router);

//サーバ起動
app.listen(port);
console.log('listen on port ' + port);
  • サーバを起動
    $ node server.js
    

Jersey Client API : Java でWeb API Client を作成する方法

従業員の操作 メソッド URI レスポンスの表現形式
検索 GET /crudsample/employees?name={name} JSON、XML
取得 GET /crudsample/employees/{ID} JSON、XML
登録 POST /crudsample/employees JSON、XML
更新 PUT /crudsample/employees/{ID} なし
削除 DELETE /crudsample/employees/{ID} なし

Post Directory