我们的一些用户要求我们在我们发送请求的HTTP标头中包含与其帐户相关的数据,甚至是我们从API获得的响应.在命名,格式化等方面添加自定义HTTP标头的一般惯例是什么?
另外,您可以随意发布您在网上偶然发现的任何智能用途; 我们正试图用最好的目标来实现这个目标:)
每当我在基于Django/Piston的REST API应用程序中遇到验证失败时,我目前正在返回401 Unauthorized .看过HTTP状态代码注册表后 我不相信这是验证失败的合适代码,你们都推荐什么?
更新:上面的"验证失败"表示应用程序级别数据验证失败,即错误指定日期时间,虚假电子邮件地址等.
我有一些服务,需要一些实体,需要保存/更新这个实体:
http://myhost.com/rest/entity
Run Code Online (Sandbox Code Playgroud)
我使用POST并提交JSON.在内部服务中,它检测到传递的实体不好.无效,订单传入不存在的客户等.
我该怎么回复?HttpCode.NotFound?或者其他人?你怎么回答这些事情?
我正在构建一个MEAN应用程序.
这是我的用户名架构,用户名应该是唯一的.
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
module.exports = mongoose.model('User', new Schema({
username: { type: String, unique: true }
}));
Run Code Online (Sandbox Code Playgroud)
在我的帖子路线上,我像这样保存用户:
app.post('/authenticate', function(req, res) {
var user = new User({
username: req.body.username
});
user.save(function(err) {
if (err) throw err;
res.json({
success: true
});
});
})
Run Code Online (Sandbox Code Playgroud)
如果我再次使用相同的用户名发布,我会收到此错误:
MongoError:insertDocument ::由:: 11000引起的E11000重复键错误索引:
有人可以解释如何发送json而不是错误 { succes: false, message: 'User already exist!' }
注意:在我发布用户后,我将自动进行身份验证,不需要密码或其他内容.
想象一下,我们有一个API,可以通过POST创建一个新的Employee
www.example.com/api/employees
Run Code Online (Sandbox Code Playgroud)
一名员工可以被描述为,
{
name: "John Smith",
tax_number: "ABC123"
}
Run Code Online (Sandbox Code Playgroud)
税号对所有人来说都是独一无二的.如果创建了一个创建,并且已存在一个名称和税号与现有记录匹配的记录,则可以安全地假设请求者想要返回该记录的引用(使用它的内部id和其他数据,客户端可能不会有,例如,创建于,更新于).
HTTP状态代码用于返回该资源的内容是什么?我想重定向可以用于返回id,但我更喜欢将整个对象包含在响应中.
这种情况对于简单的重复错误是唯一的,因为如果尝试重复,则意味着您希望创建的记录已经存在 - 而不是与现有记录冲突.
我正在构建一个应用程序,它被构建为一个Rails服务器应用程序,为客户端提供RESTful api.Rails服务器使用RABL.客户端是一个Angular JS客户端,执行标准的$ http调用(获取,放置等).
偶尔我的Rails服务器会产生一个错误(假设附加到对象的验证错误)甚至没有错误,在这种情况下我想向用户显示一些东西 - 错误例如,"记录没有保存,因为...... "或"记录已成功更新".
我试图在Rails端和Angular /客户端都映射出一个模式来处理这个问题.
至于Rails:
至于Angular:
我想我希望我不必在这里重新发明轮子,有人可以指出我目前使用和建议(和本地化)的模式.
我正在将一个REST接口用于现有应用程序,我很好奇最合适的解决方案是什么来处理资源,如果要检索它们将返回过多的数据.
该应用程序是现有的时间表系统,其中一个资源是一组用户的"时间段".这些资源的示例URI是:
/users/44/timeslots/
Run Code Online (Sandbox Code Playgroud)
我已经阅读了很多与如何为此资源提供过滤以检索子集有关的问题,我已经有了解决方法.
我想知道如何(或者如果)我应该处理在上面的URI上发出GET将从数十或数十万行返回兆字节数据的情况,并且需要相当数量的服务器资源来实际响应第一名.
编辑:要清楚,我已经过滤和拆分实现的资源,并考虑了其他大型集合资源的分页.我想适当地回应那些没有意义的请求(显然是由构建URI的客户端请求的).
我正在设计REST服务,需要检查是否正确输入了地址.我在想的是如何设计REST接口来检查完整的街道地址是否有效.
我有这个/地址服务,例如我可以做一个POST /address/validation返回xml/json true或false的东西,但对我来说这似乎是非常不合适的.
另一种方法是做一个GET /address?street=xxx&nr=xxx&zipcode=xxx(和一些更多的参数)并返回200 OK,如果正确或404 Not not found,如果不正确,这可能更RESTful?
我开始做选项1)但是我想的越多,选项2)GET感觉更好......
想法?
当我执行 POST 请求以创建新用户时返回的正确 HTTP 状态是什么,但其参数之一不正确 - 我与用户数据一起包含的公司 ID 不存在于数据库中。
POST 数据:{用户名:'newuser',年龄:99,company_id:34 }
数据库中不存在 ID 为 34 的公司。
我在想这是否可能是:
rest ×6
api ×3
http ×3
http-headers ×2
ajax ×1
angularjs ×1
express ×1
javascript ×1
json ×1
mean ×1
mongodb ×1
mongoose ×1
post ×1
validation ×1