《JavaScript应用程序设计》一一1.13 RESTful JSON Web Services

简介:

本节书摘来华章计算机出版社《JavaScript应用程序设计》一书中的第1章,第1.13节,作者:Eric Elliott 更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.13 RESTful JSON Web Services

表述性状态传递(Representational State Transfer,REST)是客户端与服务端的通信架构,REST架构采用关注点分离原则在数据资源与数据消费者之间建立了多层结构。在这种架构体系下,服务端仅关注数据资源的管理,而无需操心界面实现,客户端则可以以任何形式或语言去做界面实现。REST架构并不关心界面是被谁或是被怎样实现的,它仅处理并维护客户端与服务端的应用程序状态。
RESTful应用使用HTTP方法(POST、GET、PUT 和 DELETE)来告诉服务器,客户端当前对资源的操作行为,这些行为包括:
· 在资源集合创建条目: HTTP POST。
· 获取资源状态: HTTP GET。
· 更新(替换)资源: HTTP PUT。
· 删除资源或资源集合: HTTP DELETE。
如果你熟悉数据库的CRUD(创建、检索、更新和删除)操作,你会觉得上述行为与CRUD很相似,你可以将它们对号入座,不过要记住,在REST中,更新资源意味着将资源替换。
图1-2是一个较为典型的状态传递时序图。
image

图1-2:REST时序图

  1. 客户端通过HTTP GET请求服务端上的统一资源指示符(URI)来获取数据。在服务端上每个资源对应唯一的URI。
  2. 服务端从数据库或缓存中检索数据,随后将之封装成客户端所需的数据结构返回。
  3. 数据以文档的形式被返回,一般包含了经过JSON编码后的对象,尽管REST并没有严格指定数据交换格式。现今仍旧有不少基于XML的RESTful应用,随着JSON慢慢成为一项标准,越来越多的RESTful应用同时支持JSON与XML两种数据交换
    格式。
  4. 客户端接收并处理数据。
  5. 客户端通过HTTP PUT请求服务端同一URI上报处理过的数据。
  6. 用经PUT请求上报的数据替换服务端原有的数据。
    使用PUT还是POST做资源更新常常是一个让人感到困惑的问题,REST制定了资源访问的规则。除非客户端本身可以提供较为安全的唯一ID标识符,否则在资源集合新建资源的操作一律采用POST方式处理。在这种情形下,服务端生成ID标识符并返回给客户端。

例如, 你可以通过POST方法访问服务端的/users/资源路径从而创建一个新用户,此时服务端会给新用户生成一个唯一ID标识符,随后你便可以通过/users/userid/资源路径获取该资源。在服务端每一个唯一的URI路径对应一个新的用户,POST方法不能用于更新或修改现有的资源集,仅能够做资源添加。
而使用PUT方法访问服务端的/user/userid资源路径,则可以更新用户的信息,注意,这项操作将完全将原有的资源替换,所以请确保所更新资源内容的信息完整性。
在第8章中我们会详细介绍REST架构。

相关文章
|
6月前
|
前端开发 JavaScript 开发者
JavaScript:无处不在的Web语言
JavaScript:无处不在的Web语言
|
6月前
|
前端开发 JavaScript 开发者
JavaScript:构建动态Web的核心力量
JavaScript:构建动态Web的核心力量
|
10月前
|
前端开发 算法 API
构建高性能图像处理Web应用:Next.js与TailwindCSS实践
本文分享了构建在线图像黑白转换工具的技术实践,涵盖技术栈选择、架构设计与性能优化。项目采用Next.js提供优秀的SSR性能和SEO支持,TailwindCSS加速UI开发,WebAssembly实现高性能图像处理算法。通过渐进式处理、WebWorker隔离及内存管理等策略,解决大图像处理性能瓶颈,并确保跨浏览器兼容性和移动设备优化。实际应用案例展示了其即时处理、高质量输出和客户端隐私保护等特点。未来计划引入WebGPU加速、AI增强等功能,进一步提升用户体验。此技术栈为Web图像处理应用提供了高效可行的解决方案。
|
6月前
|
JavaScript 前端开发 开发者
JavaScript:驱动现代Web的核心引擎
JavaScript:驱动现代Web的核心引擎
|
6月前
|
JavaScript 前端开发 物联网
JavaScript:驱动现代Web的核心引擎
JavaScript:驱动现代Web的核心引擎
|
9月前
|
JSON JavaScript 前端开发
JavaScript入门干货:蓝桥杯Web组分章学习笔记(基于蓝桥云课《JavaScript基础入门》)
这是一份详尽的JavaScript学习笔记,涵盖基础到进阶内容。包括变量、运算符、数组、字符串操作,DOM/BOM事件处理,内置对象(如Array、Date、Math)用法,JSON格式解析,以及函数作用域与闭包等核心概念。同时深入探讨值类型和引用类型的差异、异常处理机制,并介绍函数高级特性如call/apply/bind方法、递归及arguments对象。代码按章节分点整理,注释细致,适合初学者系统掌握JavaScript编程知识。
167 2
|
11月前
|
JSON Java 数据库连接
怎样用 esProc 计算来自 Restful 的多层 json 数据
esProc 是一款强大的数据处理工具,可简化 Java 处理 Restful 接口返回的复杂多层 JSON 数据的难题。通过 esProc,不仅能轻松访问和解析 Restful 数据,还能高效完成复杂计算任务,并可无缝嵌入 Java 应用中作为计算引擎使用。例如,筛选特定分类订单或计算金额,esProc 的脚本简洁直观,远优于传统 SQL 或纯 Java 实现。此外,esProc 支持安全认证(如 Cookie 和 Token)及 JDBC 集成,为开发者提供灵活高效的解决方案。
|
XML JSON API
Understanding RESTful API and Web Services: Key Differences and Use Cases
在现代软件开发中,RESTful API和Web服务均用于实现系统间通信,但各有特点。RESTful API遵循REST原则,主要使用HTTP/HTTPS协议,数据格式多为JSON或XML,适用于无状态通信;而Web服务包括SOAP和REST,常用于基于网络的API,采用标准化方法如WSDL或OpenAPI。理解两者区别有助于选择适合应用需求的解决方案,构建高效、可扩展的应用程序。
|
前端开发
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
381 1
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布