【问题标题】:want to know what kind of web-service I'm developing想知道我正在开发什么样的网络服务
【发布时间】:2014-12-23 18:26:48
【问题描述】:

我正在使用 express 框架和 node.js 开发 Web 服务。

我的 app.js 如下所示:

 var app = require('express')();
 var http = require('http').Server(app);
 var io = require('socket.io')(http);
 var userService = require('./models/userService');

 app.get('/', function(req, res){
     res.send('abc');
 });

 app.post('/movie',userService.getUserById);

而我的userService.getUserById() 如下所示:

 exports.getUserById = function(req, res){
     var data = JSON.stringify(
            {
                status:'1',
                data:'OK'
            });
     res.send(data);
 }

当我使用 post 方法点击 http://localhost:3000/movie 时,我得到 {status:'1',data:'OK'} 表示它正在工作。

我现在的问题是,

这是一个 RESTful api 吗?为什么?

【问题讨论】:

  • 我不会真的认为这是一个 RESTful api。当然,您正在处理 GET 和 POST,但它们彼此无关。一个 RESTful 示例将包括单个模型上的 CRUD 操作。结帐express's docs了解更多详情。

标签: node.js rest


【解决方案1】:

RESTful 服务的约束是:

  • 客户端-服务器 - 检查
  • 无状态 - 检查
  • 列表项
  • 可缓存 - 检查
  • 分层系统 - 检查
  • 资源识别 - 检查
  • 通过这些表示操作资源 - 检查。 (不能修改/删除任何数据,因此应视为符合)。
  • 自描述消息 - 没有。您需要将 mimetype 添加到响应标头。
  • 超媒体作为应用程序状态的引擎 - CHECK。 (没有动作/状态改变,所以应该被认为是符合的)

所以,不,这不是 RESTful 服务,至少在您开始发送正确的标头之前是这样。 但是,将 RESTful 服务这样复杂的概念应用到您的这段代码中,这有点有趣。如果是学校作业,我不建议你把它交给你的老师。

【讨论】:

  • 感谢 stroncium,pixelhandler.com/posts/… coenraets.org/blog/2012/10/… 这些是我学习的一些博客。我的问题中的示例很小,但以上是根据它的 REST 的博客......怎么样?
  • 好吧,就像我说的,唯一与 rest 不同的是您不发送 Content-Type 标头。在您开始发送这些之后,它将成为 RESTful 服务。我不完全确定这篇博文,但我假设他们将数据发送到响应的方式(直接调用 ServerResponse 上的 send 方法)为他们添加了这个标题(可能还有更多)。
  • 是的,仅此而已。我已经在回答中说明了所有标准。
猜你喜欢
  • 1970-01-01
  • 2020-11-12
  • 1970-01-01
  • 2022-07-27
  • 1970-01-01
  • 1970-01-01
  • 2011-02-11
  • 2021-10-15
  • 2014-05-26
相关资源
最近更新 更多