[Node.js]Restful Api
摘要
什么Rest?
REST即表述性状态传递(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。
表述性状态转移是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是RESTful。需要注意的是,REST是设计风格而不是标准。REST通常基于使用HTTP,URI,和XML(标准通用标记语言下的一个子集)以及HTML(标准通用标记语言下的一个应用)这些现有的广泛流行的协议和标准。REST 通常使用 JSON 数据格式。
Http方法和RESTful Web Services
REST基本架构使用的http方法有以下四种:GET(用于查询数据)、PUT(修改数据)、DELETE(删除数据)、POST(添加数据)。
Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。
基于 REST 架构的 Web Services 即是 RESTful。
由于轻量级以及通过 HTTP 直接传输数据的特性,Web 服务的 RESTful 方法已经成为最常见的替代方法。可以使用各种语言(比如 Java 程序、Perl、Ruby、Python、PHP 和 Javascript[包括 Ajax])实现客户端。
一个例子
这里我们创建Restful api,对用户信息进行增删改查操作。创建users.json作为数据源。
{ "user1":{ "name":"wolfy1", "age":1 }, "user2":{ "name":"wolfy2", "age":2 } }
启动,并用浏览器访问
添加数据
读取users.json并添加user3
var user={ "user3":{ "name":"wolfy3", "age":3 }}; //添加数据 app.get("/adduser",function(req,res){ //读取已经存在的数据 fs.readFile(__dirname+"/"+"users.json","utf8",function(err,data){ if(err){ console.log(err); }else{ data=JSON.parse(data); data["user3"]=user["user3"]; res.end(JSON.stringify(data) ); }; }); });
启动,并浏览
查找用户1详情
app.get("/:name",function(req,res){ //读取已经存在的数据 fs.readFile(__dirname+"/"+"users.json","utf8",function(err,data){ if(err){ console.log(err); }else{ data=JSON.parse(data); var user=data[req.params.name]; res.end(JSON.stringify(user) ); }; }); });
启动,并浏览
删除用户
删除用户,并使用postman发送delete请求,返回删除后的数据。
app.delete("/deleteuser",function(req,res){ //读取已经存在的数据 fs.readFile(__dirname+"/"+"users.json","utf8",function(err,data){ if(err){ console.log(err); }else{ data=JSON.parse(data); delete data["user3"]; res.end(JSON.stringify(data) ); }; }); });
学习资料
-
博客地址:http://www.cnblogs.com/wolf-sun/
博客版权:如果文中有不妥或者错误的地方还望高手的你指出,以免误人子弟。如果觉得本文对你有所帮助不如【推荐】一下!如果你有更好的建议,不如留言一起讨论,共同进步! 再次感谢您耐心的读完本篇文章。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
2014-05-18 [NHibernate]Nullables