利用 Nodejs & express4 製作 RESTful Web API
在實習期間,因為公司需要,必須搭建一個Web API,上網查了一下之後發現Nodejs & express 搭配是個不錯的做法,於是買了本Nodejs的書翻了幾天,上網找了一些資料之後就開始著手了,這篇是自己在建置過程的筆記。
裡面有許多的內容是參考這篇:
Build a RESTful API Using Node and Express4
有興趣的人可以連結至原文觀看。
目標
- 利用
HTTP
方法GET
POST
PUT
DELET
搭建基礎RESTful API。 - 回傳json格式的資料。
關於RESTful API,這篇有更詳細的介紹:
開始
本文預設你已經裝好了Nodejs & express4。
一、 建立一個express專案
我是利用express generator來建立,如果尚未安裝,請先打開你的終端機,輸入npm install -g express-generator
,等安裝好之後,就可以利用express yourapp
這項指令來建立專案。
假設這個API專案的名稱為node-api,輸入以下指令:
$ express node-api
就會在該目錄下產生一資料夾為node-api。
二、安裝相依套件
進入目錄,安裝相關套件:
$ cd node-api
$ npm install
三、建立自己的API檔
在routes資料夾下建立apis.js,打開之後輸入以下內容:
var express = require('express');
var router = express.Router();
route.get('/images', function(req, res) {
res.json({ message: "第一個API!" });
});
module.exports = router;
之後打開app.js,在第10行與第26行分別加入以下內容(其實加在哪裡都沒差,只是require跟app.use分開放比較整齊):
var apis = require('./routes/apis'); // 加在require部分
app.use('/api', apis); // 加在app.use部分
打開terminal,輸入
$ npm start
server就跑起來囉,預設的port為 http://localhost:3000
四、測試API(利用Postman)
api寫好也跑起來之後,就可以來進行測試囉。Postman是一款簡單易用的工具,它可以幫你送出不同的HTTP方法到某個網址,也可以讓你輸入參數。
打開Postman,輸入http://localhost:3000/api/images
,選get,就可以看到如下的畫面
恭喜你,完成了最基礎的api!
五、單筆資料的CRUD
接下來就是搭建針對單筆資料CRUD的RESTful api;與上一個做法不同的地方是,在網址部分傳入id
當作參數(本文中不會實作資料庫的部分,僅僅是搭建一個架構,如果需要更進一步了解api與資料庫的搭配,可以參考開頭的那篇連結)。
在api.js
內輸入以下內容:
router.route('/images/:id') // 輸入id當作參數
.get(function(req, res) {
res.json({
id: req.params.id, // 以req.params.id 取得參數
message: 'The get api for image: ' + req.params.id
})
})
.post(function(req, res) {
res.json({
id: req.params.id,
message: 'The post api for image: ' + req.params.id
})
})
.put(function(req, res) {
res.json({
id: req.params.id,
message: 'The put api for image: ' + req.params.id
})
})
.delete(function(req, res) {
res.json({
id: req.params.id,
message: 'The delete api for image: ' + req.params.id
})
});
之後,同樣利用Postman,選擇不同的HTTP method來進行檢視。以下以post為例:
到此就完成了基本api的雛形,接下來就可以針對不同的method來進行CRUD的實作囉。