如何在Express.js中为CREATE,UPDATE,GET和DELETE设置REST API路由?

时间:2014-07-23 12:55:43

标签: api rest express routes

我正在构建我的第一个“真正的”MEAN应用程序,我正在玩如何构建我的REST api,我想用它作为我的后端。

我想知道如何在Express中设计典型的API方法:

  • GET
  • POST
  • 创建
  • 更新

我已经制作了以下代码,它解决了GET,UPDATE和DELETE。但是如何实现POST?这是不错的做法吗?

代码:

app.get('/api/serials',function(req,res){
    // get all serials code
});

app.get('/api/serials/:id',function(req,res){
    // get by id code
});

app.get('/api/serials/:id/update',function(req,res){
    // update code
});

app.get('/api/serials/:id/delete',function(req,res){
    // delete code
});

1 个答案:

答案 0 :(得分:3)

你可能在这里错过了一个基本概念。 RESTful API以不同的方式响应对同一URI的请求,具体取决于HTTP方法。

// So it's NOT this:
app.get('/api/serials/:id/update', updateHandler);
app.get('/api/serials/:id/delete', deleteHandler);

// but rather `PUT` requests for updates
app.put('/api/serials/:id', updateHandler);

// and a `DELETE` requests for deletes
app.delete('/api/serials/:id', deleteHandler);

...将对资源集合的单个成员进行操作的所有请求发送到同一URI。

对资源集合进行操作的请求将发送到资源的集合或基本URI:

// the READ you already have right
app.get('/api/serials', indexHandler);

// but new resources should be created by POSTing to the collection URI
app.post('/api/serials', createHandler);