在本教程中,我们将了解RESTful API方法,即GET 开机自检 放 删除
什么是RESTful API?
RESTful API是一个应用程序接口(API),它使用HTTP请求来获取,放置,发布和删除数据。浏览器使用的代表性状态传输(REST)可被视为Internet的语言。
REST是Web的基础架构原理。 Web的惊人之处在于,客户端(浏览器)和服务器可以以复杂的方式进行交互,而无需客户端事先了解服务器及其托管的资源。关键约束是服务器和客户端都必须就所使用的媒体达成一致,在网络上为HTML。
RESTful API准则
构成RESTful API的5条基本设计准则
- 资源(URI)
- HTTP方法
- HTTP标头
- 查询参数
- 状态码
REST API中的HTTP方法
RESTful API的4种基本方法
- 得到
- 开机自检
- 放
- 删除
得到方法
HTTP 得到方法用于读取(或检索)资源的表示形式。在“高兴”(或非错误)路径中,GET返回XML或JSON表示形式以及HTTP响应代码200(确定)。在错误情况下,它通常会返回404(找不到)或400(错误请求)
通过url的GET方法示例:
得到 http://www.example.com/api/feedback/getAllUsers
router.get('/getAll', function(req, res) {
users.getAllUsers(function(err, data) {
if(err){
res.json({ 'error': true, 'message': "Error fetching users" });
}else{
res.json({ 'success': true, 'users': data });
}
});
});
开机自检方法
开机自检动词通常用于创建新资源。特别是,它用于创建从属资源。也就是说,从属于其他资源。换句话说,在创建新资源时,将POST传递给父级,并且服务会负责将新资源与父级关联,分配ID等。
开机自检方法用于请求源服务器接受请求中包含的实体作为请求行中Request-URI标识的资源的新下属。 开机自检旨在允许采用统一的方法来覆盖以下功能:
- 现有资源注释
- 将消息发布到公告板,新闻组,邮件列表或类似的文章组
- 向数据处理过程提供数据块,例如提交表单的结果
- 通过附加操作扩展数据库。
通过网址的POST方法示例
http:// localhost:3000 / api / users / login
router.post('/login', function(req, res) {
login.loginUser(req, res, function(err, data) {
if (err) {
res.json({ 'error': true, 'message': 'Error logged in' });
} else {
res.json({ 'success': true, 'data': data });
}
});
});
放方法
放通常用于更新功能,将请求内容包含到请求资源包含原始资源的新近更新表示的PUT到已知资源URI。 放方法用于在客户端已知的URL处创建或替换资源。
但是,在资源ID由客户端而不是服务器选择的情况下,PUT也可以用于创建资源。换句话说,如果PUT指向包含不存在的资源ID值的URI。同样,请求主体包含资源表示。
router.put('/profile', function(req, res) {
profile.updateProfile(req, res, function(err, data) {
if (err) {
res.json({ 'error': true, 'message': 'Error updating profile' });
} else {
res.json({ 'success': true, 'message': 'profile update succesfully' });
}
});
});
删除方法
Delete方法删除URI给定的目标资源的所有当前表示形式。
成功删除后,返回HTTP状态200(OK)以及响应正文,可能是已删除项目的表示形式(通常需要太多带宽)或已包装的响应(请参见下面的返回值)。要么返回HTTP状态204(没有内容),就没有响应主体。换句话说,建议使用无主体的204状态或JSEND样式的响应以及HTTP状态200。
示例删除ID为1的反馈:
删除/反馈/ 1
router.delete('/delete/:id', function(req, res) {
deleteFeedback.deleteFeedback(req, res, function(err, data) {
if (err) {
res.json({ 'error': true, 'message': 'Error deleting records' });
} else {
res.json({ 'success': true, 'message': 'Deleted succesfully' });
}
});
});