聚集网(jujiwang.com) - 收录免费分类目录信息软文发布网址提交
免费加入

使用 Restlet 简化 RESTful Web 服务开发:一步步指南 (使用read_csv函数读取某地区房屋销售数据.csv文件)

文章编号:10772时间:2024-09-29人气:


服务开发

引言

RESTful Web 服务是一种流行且强大的方式来构建面向网络的应用程序。它们提供了一种平台无关且轻量级的交互方法,非常适合分布式系统。

Restlet 是一个流行的 Java 框架,它简化了 RESTful Web 服务的开发。它提供了一套全面且易于使用的 API,可帮助您快速构建和部署可靠、可扩展的 Web 服务。

逐步指南

1. 设置 Restlet 项目

您需要创建一个新的 Restlet 项目。您可以使用 Maven 或 Gradle 等构建工具,或者手动创建项目。

对于 Maven,您需要在 pom.xml 文件中添加以下依赖项:

xml org.restlet org.restlet 2.4.10

对于 Gradle,您需要在 build.gradle 文件中添加以下依赖项:

gradle implementation 'org.restlet:org.restlet:2.4.10'

2. 创建资源类

资源类代表 RESTful Web 服务的数据或操作。在 Restlet 中,创建资源类涉及编写一个扩展 org.restlet.resource.ServerResource 的类。

例如,以下资源类表示一个可以获取和设置用户信息的简单用户资源:

java public class UserResource extends ServerResource {private String name;@Getpublic String getUser() {return name;}@Putpublic void setUser(String name) {this.name = name;} }

3. 创建路由器

路由器将传入的请求映射到相应的资源类。在 Restlet 中,您可以使用 org.restlet.routing.Router 类来实现路由。

以下路由器将 /users مسیر映射到 UserResource 类:

java public class RouterExample {public static void main(String[] args) throws Exception {Router router = new Router();router.attach("/users", UserResource.class);} }

4. 启动服务器

最后,您需要启动服务器来托管您的 RESTful Web 服务。在 Restlet 中,您可以使用 org.restlet.Server 类来启动服务器。

以下代码将启动一个在端口 8182 上监听的服务:

java public class ServerExample {public static void main(String[] args) throws Exception {Server server = new Server(8182, router);server.register(new RestletApplication());server.start();} }

5. 使用 CSV 文件

假设您有一个名为 house_sales.csv 的 CSV 文件,其中包含某个地区的房屋销售数据。您可以使用 Restlet 的 read_csv 函数来读取此文件并将其呈现为 JSON 或 XML。

以下代码显示了如何使用 read_csv 函数:

java @Get public Representation getCsv() {try {File file = new File("house_sales.csv");CsvRepresentation csv = Restlet.read_csv(file);return csv;} catch (IOException e) {return new TextRepresentation(e.getMessage());} }

结论

Restlet 是一个强大且易于使用的框架,用于开发 RESTful Web 服务。通过遵循本指南,您应该能够快速入门并构建自己的 RESTful Web 服务。


怎样用通俗的语言解释什么叫 REST,以及什么是 RESTful

REST (REpresentation State Transfer) 描述了一个架构样式的网络系统,比如 web 应用程序。 它首次出现在 2000 年 Roy Fielding 的博士论文中,他是 HTTP 规范的主要编写者之一。 REST 指的是一组架构约束条件和原则。 满足这些约束条件和原则的应用程序或设计就是 RESTful。 Web 应用程序最重要的 REST 原则是,客户端和服务器之间的交互在请求之间是无状态的。 从客户端到服务器的每个请求都必须包含理解请求所必需的信息。 如果服务器在请求之间的任何时间点重启,客户端不会得到通知。 此外,无状态请求可以由任何可用服务器回答,这十分适合云计算之类的环境。 客户端可以缓存数据以改进性能。 在服务器端,应用程序状态和功能可以分为各种资源。 资源是一个有趣的概念实体,它向客户端公开。 资源的例子有:应用程序对象、数据库记录、算法等等。 每个资源都使用 URI (Universal Resource Identifier) 得到一个惟一的地址。 所有资源都共享统一的界面,以便在客户端和服务器之间传输状态。 使用的是标准的 HTTP 方法,比如 GET、PUT、POST 和 DELETE。 Hypermedia 是应用程序状态的引擎,资源表示通过超链接互联。 另一个重要的 REST 原则是分层系统,这表示组件无法了解它与之交互的中间层以外的组件。 通过将系统知识限制在单个层,可以限制整个系统的复杂性,促进了底层的独立性。 当REST 架构的约束条件作为一个整体应用时,将生成一个可以扩展到大量客户端的应用程序。 它还降低了客户端和服务器之间的交互延迟。 统一界面简化了整个系统架构,改进了子系统之间交互的可见性。 REST 简化了客户端和服务器的实现。 RESTful的实现:RESTful Web 服务与 RPC 样式的 Web 服务了解了什么是什么是REST,我们再看看RESTful的实现。 最近,使用 RPC 样式架构构建的基于 SOAP 的 Web 服务成为实现 SOA 最常用的方法。 RPC 样式的 Web 服务客户端将一个装满数据的信封(包括方法和参数信息)通过 HTTP 发送到服务器。 服务器打开信封并使用传入参数执行指定的方法。 方法的结果打包到一个信封并作为响应发回客户端。 客户端收到响应并打开信封。 每个对象都有自己独特的方法以及仅公开一个 URI 的 RPC 样式 Web 服务,URI 表示单个端点。 它忽略 HTTP 的大部分特性且仅支持 POST 方法。 由于轻量级以及通过 HTTP 直接传输数据的特性,Web 服务的 RESTful 方法已经成为最常见的替代方法。 可以使用各种语言(比如 Java 程序、Perl、Ruby、Python、PHP 和 Javascript[包括 Ajax])实现客户端。 RESTful Web 服务通常可以通过自动客户端或代表用户的应用程序访问。 但是,这种服务的简便性让用户能够与之直接交互,使用它们的 Web 浏览器构建一个 GET URL 并读取返回的内容。 在REST 样式的 Web 服务中,每个资源都有一个地址。 资源本身都是方法调用的目标,方法列表对所有资源都是一样的。 这些方法都是标准方法,包括 HTTP GET、POST、PUT、DELETE,还可能包括 HEADER 和 OPTIONS。 在RPC 样式的架构中,关注点在于方法,而在 REST 样式的架构中,关注点在于资源 —— 将使用标准方法检索并操作信息片段(使用表示的形式)。 资源表示形式在表示形式中使用超链接互联。 Leonard Richardson 和 Sam Ruby 在他们的著作 RESTful Web Services 中引入了术语 REST-RPC 混合架构。 REST-RPC 混合 Web 服务不使用信封包装方法、参数和数据,而是直接通过 HTTP 传输数据,这与 REST 样式的 Web 服务是类似的。 但是它不使用标准的 HTTP 方法操作资源。 它在 HTTP 请求的 URI 部分存储方法信息。 好几个知名的 Web 服务,比如 Yahoo 的 Flickr API 和 API 都使用这种混合架构。 RESTful的实现:RESTful Web 服务的 Java 框架有两个 Java 框架可以帮助构建 RESTful Web 服务。 erome Louvel 和 Dave Pawson 开发的 Restlet(见 参考资料)是轻量级的。 它实现针对各种 RESTful 系统的资源、表示、连接器和媒体类型之类的概念,包括 Web 服务。 在 Restlet 框架中,客户端和服务器都是组件。 组件通过连接器互相通信。 该框架最重要的类是抽象类 Uniform 及其具体的子类 Restlet,该类的子类是专用类,比如 Application、Filter、Finder、Router 和 Route。 这些子类能够一起处理验证、过滤、安全、数据转换以及将传入请求路由到相应资源等操作。 Resource 类生成客户端的表示形式。 JSR-311是 Sun Microsystems 的规范,可以为开发 RESTful Web 服务定义一组 Java API。 Jersey是对 JSR-311 的参考实现。 JSR-311 提供一组注释,相关类和接口都可以用来将 Java 对象作为 Web 资源展示。 该规范假定 HTTP 是底层网络协议。 它使用注释提供 URI 和相应资源类之间的清晰映射,以及 HTTP 方法与 Java 对象方法之间的映射。 API 支持广泛的 HTTP 实体内容类型,包括 HTML、XML、JSON、GIF、JPG 等。 它还将提供所需的插件功能,以允许使用标准方法通过应用程序添加其他类型。 RESTful的实现:构建 RESTful Web 服务的多层架构RESTful Web 服务和动态 Web 应用程序在许多方面都是类似的。 有时它们提供相同或非常类似的数据和函数,尽管客户端的种类不同。 例如,在线电子商务分类网站为用户提供一个浏览器界面,用于搜索、查看和订购产品。 如果还提供 Web 服务供公司、零售商甚至个人能够自动订购产品,它将非常有用。 与大部分动态 Web 应用程序一样,Web 服务可以从多层架构的关注点分离中受益。 业务逻辑和数据可以由自动客户端和 GUI 客户端共享。 惟一的不同点在于客户端的本质和中间层的表示层。 此外,从数据访问中分离业务逻辑可实现数据库独立性,并为各种类型的数据存储提供插件能力。 图1 展示了自动化客户端,包括 Java 和各种语言编写的脚本,这些语言包括 Python、Perl、Ruby、PHP 或命令行工具,比如 curl。 在浏览器中运行且作为 RESTful Web 服务消费者运行的 Ajax、Flash、JavaFX、GWT、博客和 wiki 都属于此列,因为它们都代表用户以自动化样式运行。 自动化 Web 服务客户端在 Web 层向 Resource Request Handler 发送 HTTP 响应。 客户端的无状态请求在头部包含方法信息,即 POST、GET、PUT 和 DELETE,这又将映射到 Resource Request Handler 中资源的相应操作。 每个请求都包含所有必需的信息,包括 Resource Request Handler 用来处理请求的凭据。 从Web 服务客户端收到请求之后,Resource Request Handler 从业务逻辑层请求服务。 Resource Request Handler 确定所有概念性的实体,系统将这些实体作为资源公开,并为每个资源分配一个惟一的 URI。 但是,概念性的实体在该层是不存在的。 它们存在于业务逻辑层。 可以使用 Jersey 或其他框架(比如 Restlet)实现 Resource Request Handler,它应该是轻量级的,将大量职责工作委托给业务层。 Ajax 和 RESTful Web 服务本质上是互为补充的。 它们都可以利用大量 Web 技术和标准,比如 HTML、JavaScript、浏览器对象、XML/JSON 和 HTTP。 当然也不需要购买、安装或配置任何主要组件来支持 Ajax 前端和 RESTful Web 服务之间的交互。 RESTful Web 服务为 Ajax 提供了非常简单的 API 来处理服务器上资源之间的交互。 图1 中的 Web 浏览器客户端作为 GUI 的前端,使用表示层中的 Browser Request Handler 生成的 HTML 提供显示功能。 Browser Requester Handler 可以使用 MVC 模型(JSF、Struts 或 Spring 都是 Java 的例子)。 它从浏览器接受请求,从业务逻辑层请求服务,生成表示并对浏览器做出响应。 表示供用户在浏览器中显示使用。 表示不仅包含内容,还包含显示的属性,比如 HTML 和 CSS。 业务规则可以集中到业务逻辑层,该层充当表示层和数据访问层之间的数据交换的中间层。 数据以域对象或值对象的形式提供给表示层。 从业务逻辑层中解耦 Browser Request Handler 和 Resource Request Handler 有助于促进代码重用,并能实现灵活和可扩展的架构。 此外,由于将来可以使用新的 REST 和 MVC 框架,实现它们变得更加容易,无需重写业务逻辑层。 数据访问层提供与数据存储层的交互,可以使用 DAO 设计模式或者对象-关系映射解决方案(如 Hibernate、OJB 或 iBATIS)实现。 作为替代方案,业务层和数据访问层中的组件可以实现为 EJB 组件,并取得 EJB 容器的支持,该容器可以为组件生命周期提供便利,管理持久性、事务和资源配置。 但是,这需要一个遵从 Java EE 的应用服务器(比如 JBoss),并且可能无法处理 Tomcat。 该层的作用在于针对不同的数据存储技术,从业务逻辑中分离数据访问代码。 数据访问层还可以作为连接其他系统的集成点,可以成为其他 Web 服务的客户端。 数据存储层包括数据库系统、LDAP 服务器、文件系统和企业信息系统(包括遗留系统、事务处理系统和企业资源规划系统)。 使用该架构,您可以开始看到 RESTful Web 服务的力量,它可以灵活地成为任何企业数据存储的统一 API,从而向以用户为中心的 Web 应用程序公开垂直数据,并自动化批量报告脚本。 什么是REST:结束语REST 描述了一个架构样式的互联系统(如 Web 应用程序)。 REST 约束条件作为一个整体应用时,将生成一个简单、可扩展、有效、安全、可靠的架构。 由于它简便、轻量级以及通过 HTTP 直接传输数据的特性,RESTful Web 服务成为基于 SOAP 服务的一个最有前途的替代方案。 用于 web 服务和动态 Web 应用程序的多层架构可以实现可重用性、简单性、可扩展性和组件可响应性的清晰分离。 Ajax 和 RESTful Web 服务本质上是互为补充的。

怎么通过jersey-client客户端调用jersey的web服务

REST (REpresentation State Transfer) 描述了一个架构样式的网络系统,比如 web 应用程序。 它首次出现在 2000 年 Roy Fielding 的博士论文中,他是 HTTP 规范的主要编写者之一。 REST 指的是一组架构约束条件和原则。 满足这些约束条件和原则的应用程序或设计就是 RESTful。 Web 应用程序最重要的 REST 原则是,客户端和服务器之间的交互在请求之间是无状态的。 从客户端到服务器的每个请求都必须包含理解请求所必需的信息。 如果服务器在请求之间的任何时间点重启,客户端不会得到通知。 此外,无状态请求可以由任何可用服务器回答,这十分适合云计算之类的环境。 客户端可以缓存数据以改进性能。 在服务器端,应用程序状态和功能可以分为各种资源。 资源是一个有趣的概念实体,它向客户端公开。 资源的例子有:应用程序对象、数据库记录、算法等等。 每个资源都使用 URI (Universal Resource Identifier) 得到一个惟一的地址。 所有资源都共享统一的界面,以便在客户端和服务器之间传输状态。 使用的是标准的 HTTP 方法,比如 GET、PUT、POST 和 DELETE。 Hypermedia 是应用程序状态的引擎,资源表示通过超链接互联。 另一个重要的 REST 原则是分层系统,这表示组件无法了解它与之交互的中间层以外的组件。 通过将系统知识限制在单个层,可以限制整个系统的复杂性,促进了底层的独立性。 当REST 架构的约束条件作为一个整体应用时,将生成一个可以扩展到大量客户端的应用程序。 它还降低了客户端和服务器之间的交互延迟。 统一界面简化了整个系统架构,改进了子系统之间交互的可见性。 REST 简化了客户端和服务器的实现。 RESTful的实现:RESTful Web 服务与 RPC 样式的 Web 服务了解了什么是什么是REST,我们再看看RESTful的实现。 最近,使用 RPC 样式架构构建的基于 SOAP 的 Web 服务成为实现 SOA 最常用的方法。 RPC 样式的 Web 服务客户端将一个装满数据的信封(包括方法和参数信息)通过 HTTP 发送到服务器。 服务器打开信封并使用传入参数执行指定的方法。 方法的结果打包到一个信封并作为响应发回客户端。 客户端收到响应并打开信封。 每个对象都有自己独特的方法以及仅公开一个 URI 的 RPC 样式 Web 服务,URI 表示单个端点。 它忽略 HTTP 的大部分特性且仅支持 POST 方法。 由于轻量级以及通过 HTTP 直接传输数据的特性,Web 服务的 RESTful 方法已经成为最常见的替代方法。 可以使用各种语言(比如 Java 程序、Perl、Ruby、Python、PHP 和 Javascript[包括 Ajax])实现客户端。 RESTful Web 服务通常可以通过自动客户端或代表用户的应用程序访问。 但是,这种服务的简便性让用户能够与之直接交互,使用它们的 Web 浏览器构建一个 GET URL 并读取返回的内容。 在REST 样式的 Web 服务中,每个资源都有一个地址。 资源本身都是方法调用的目标,方法列表对所有资源都是一样的。 这些方法都是标准方法,包括 HTTP GET、POST、PUT、DELETE,还可能包括 HEADER 和 OPTIONS。 在RPC 样式的架构中,关注点在于方法,而在 REST 样式的架构中,关注点在于资源 -- 将使用标准方法检索并操作信息片段(使用表示的形式)。 资源表示形式在表示形式中使用超链接互联。 Leonard Richardson 和 Sam Ruby 在他们的著作 RESTful Web Services 中引入了术语 REST-RPC 混合架构。 REST-RPC 混合 Web 服务不使用信封包装方法、参数和数据,而是直接通过 HTTP 传输数据,这与 REST 样式的 Web 服务是类似的。 但是它不使用标准的 HTTP 方法操作资源。 它在 HTTP 请求的 URI 部分存储方法信息。 好几个知名的 Web 服务,比如 Yahoo 的 Flickr API 和 API 都使用这种混合架构。 RESTful的实现:RESTful Web 服务的 Java 框架有两个 Java 框架可以帮助构建 RESTful Web 服务。 erome Louvel 和 Dave Pawson 开发的 Restlet(见 参考资料)是轻量级的。 它实现针对各种 RESTful 系统的资源、表示、连接器和媒体类型之类的概念,包括 Web 服务。 在 Restlet 框架中,客户端和服务器都是组件。 组件通过连接器互相通信。 该框架最重要的类是抽象类 Uniform 及其具体的子类 Restlet,该类的子类是专用类,比如 Application、Filter、Finder、Router 和 Route。 这些子类能够一起处理验证、过滤、安全、数据转换以及将传入请求路由到相应资源等操作。 Resource 类生成客户端的表示形式。 JSR-311是 Sun Microsystems 的规范,可以为开发 RESTful Web 服务定义一组 Java API。 Jersey是对 JSR-311 的参考实现。 JSR-311 提供一组注释,相关类和接口都可以用来将 Java 对象作为 Web 资源展示。 该规范假定 HTTP 是底层网络协议。 它使用注释提供 URI 和相应资源类之间的清晰映射,以及 HTTP 方法与 Java 对象方法之间的映射。 API 支持广泛的 HTTP 实体内容类型,包括 HTML、XML、JSON、GIF、JPG 等。 它还将提供所需的插件功能,以允许使用标准方法通过应用程序添加其他类型。 RESTful的实现:构建 RESTful Web 服务的多层架构RESTful Web 服务和动态 Web 应用程序在许多方面都是类似的。 有时它们提供相同或非常类似的数据和函数,尽管客户端的种类不同。 例如,在线电子商务分类网站为用户提供一个浏览器界面,用于搜索、查看和订购产品。 如果还提供 Web 服务供公司、零售商甚至个人能够自动订购产品,它将非常有用。 与大部分动态 Web 应用程序一样,Web 服务可以从多层架构的关注点分离中受益。 业务逻辑和数据可以由自动客户端和 GUI 客户端共享。 惟一的不同点在于客户端的本质和中间层的表示层。 此外,从数据访问中分离业务逻辑可实现数据库独立性,并为各种类型的数据存储提供插件能力。 图1 展示了自动化客户端,包括 Java 和各种语言编写的脚本,这些语言包括 Python、Perl、Ruby、PHP 或命令行工具,比如 curl。 在浏览器中运行且作为 RESTful Web 服务消费者运行的 Ajax、Flash、JavaFX、GWT、博客和 wiki 都属于此列,因为它们都代表用户以自动化样式运行。 自动化 Web 服务客户端在 Web 层向 Resource Request Handler 发送 HTTP 响应。 客户端的无状态请求在头部包含方法信息,即 POST、GET、PUT 和 DELETE,这又将映射到 Resource Request Handler 中资源的相应操作。 每个请求都包含所有必需的信息,包括 Resource Request Handler 用来处理请求的凭据。 从Web 服务客户端收到请求之后,Resource Request Handler 从业务逻辑层请求服务。 Resource Request Handler 确定所有概念性的实体,系统将这些实体作为资源公开,并为每个资源分配一个惟一的 URI。 但是,概念性的实体在该层是不存在的。 它们存在于业务逻辑层。 可以使用 Jersey 或其他框架(比如 Restlet)实现 Resource Request Handler,它应该是轻量级的,将大量职责工作委托给业务层。 Ajax 和 RESTful Web 服务本质上是互为补充的。 它们都可以利用大量 Web 技术和标准,比如 HTML、JavaScript、浏览器对象、XML/JSON 和 HTTP。 当然也不需要购买、安装或配置任何主要组件来支持 Ajax 前端和 RESTful Web 服务之间的交互。 RESTful Web 服务为 Ajax 提供了非常简单的 API 来处理服务器上资源之间的交互。 图1 中的 Web 浏览器客户端作为 GUI 的前端,使用表示层中的 Browser Request Handler 生成的 HTML 提供显示功能。 Browser Requester Handler 可以使用 MVC 模型(JSF、Struts 或 Spring 都是 Java 的例子)。 它从浏览器接受请求,从业务逻辑层请求服务,生成表示并对浏览器做出响应。 表示供用户在浏览器中显示使用。 表示不仅包含内容,还包含显示的属性,比如 HTML 和 CSS。 业务规则可以集中到业务逻辑层,该层充当表示层和数据访问层之间的数据交换的中间层。 数据以域对象或值对象的形式提供给表示层。 从业务逻辑层中解耦 Browser Request Handler 和 Resource Request Handler 有助于促进代码重用,并能实现灵活和可扩展的架构。 此外,由于将来可以使用新的 REST 和 MVC 框架,实现它们变得更加容易,无需重写业务逻辑层。 数据访问层提供与数据存储层的交互,可以使用 DAO 设计模式或者对象-关系映射解决方案(如 Hibernate、OJB 或 iBATIS)实现。 作为替代方案,业务层和数据访问层中的组件可以实现为 EJB 组件,并取得 EJB 容器的支持,该容器可以为组件生命周期提供便利,管理持久性、事务和资源配置。 但是,这需要一个遵从 Java EE 的应用服务器(比如 JBoss),并且可能无法处理 Tomcat。 该层的作用在于针对不同的数据存储技术,从业务逻辑中分离数据访问代码。 数据访问层还可以作为连接其他系统的集成点,可以成为其他 Web 服务的客户端。 数据存储层包括数据库系统、LDAP 服务器、文件系统和企业信息系统(包括遗留系统、事务处理系统和企业资源规划系统)。 使用该架构,您可以开始看到 RESTful Web 服务的力量,它可以灵活地成为任何企业数据存储的统一 API,从而向以用户为中心的 Web 应用程序公开垂直数据,并自动化批量报告脚本。 什么是REST:结束语REST 描述了一个架构样式的互联系统(如 Web 应用程序)。 REST 约束条件作为一个整体应用时,将生成一个简单、可扩展、有效、安全、可靠的架构。 由于它简便、轻量级以及通过 HTTP 直接传输数据的特性,RESTful Web 服务成为基于 SOAP 服务的一个最有前途的替代方案。 用于 web 服务和动态 Web 应用程序的多层架构可以实现可重用性、简单性、可扩展性和组件可响应性的清晰分离。 Ajax 和 RESTful Web 服务本质上是互为补充的。

RESTful

一个用 Java 实现的超轻量级 RESTful Web 服务示例 | Linux 中国

探索轻量级 RESTful 服务,本文通过一个Java实现的简单示例来展开。 在近二十年的Web服务历程中,RESTful架构逐渐成为主流,如eBay和Facebook。 本文将通过一个名为“小说”服务的代码示例,展示如何使用基础的HttpServlet来构建和部署RESTful服务,无需依赖如Jersey或Restlet这样的框架。 “小说”服务仅依赖于三个核心类:Novel、NovelsServlet和一些实用工具函数。 通过Tomcat作为Web服务器,部署过程相当简单,如在README文件中指导的那样。 通过WAR文件部署,访问格式如,并支持热部署。 示例代码中,Novel类代表小说实体,实现了Comparable接口进行排序。 Novels类提供了存储、读取和编码小说的功能,包括从文本文件初始化数据。 NovelsServlet是HttpServlet的子类,重载了CRUD操作,处理GET、POST、PUT和DELETE请求。 HTTP请求格式遵循标准,如GET请求可以查询小说列表,POST用于创建,PUT用于更新,DELETE用于删除。 通过配置文件,可以配置服务的路由和安全设置。 总的来说,HttpServlet作为Java Web服务的核心,为轻量级RESTful服务提供了基础。 尽管JAX-RS和Restlet等框架提供了更高级的功能,但简单的Servlet代码结构清晰,易于理解和维护,是初学者入门RESTful服务的良好起点。

怎样用通俗的语言解释什么叫 REST,以及什么是 RESTful

REST (REpresentation State Transfer) 描述了一个架构样式的网络系统,比如 web 应用程序。 它首次出现在 2000 年 Roy Fielding 的博士论文中,他是 HTTP 规范的主要编写者之一。 REST 指的是一组架构约束条件和原则。 满足这些约束条件和原则的应用程序或设计就是 RESTful。 Web 应用程序最重要的 REST 原则是,客户端和服务器之间的交互在请求之间是无状态的。 从客户端到服务器的每个请求都必须包含理解请求所必需的信息。 如果服务器在请求之间的任何时间点重启,客户端不会得到通知。 此外,无状态请求可以由任何可用服务器回答,这十分适合云计算之类的环境。 客户端可以缓存数据以改进性能。 在服务器端,应用程序状态和功能可以分为各种资源。 资源是一个有趣的概念实体,它向客户端公开。 资源的例子有:应用程序对象、数据库记录、算法等等。 每个资源都使用 URI (Universal Resource Identifier) 得到一个惟一的地址。 所有资源都共享统一的界面,以便在客户端和服务器之间传输状态。 使用的是标准的 HTTP 方法,比如 GET、PUT、POST 和 DELETE。 Hypermedia 是应用程序状态的引擎,资源表示通过超链接互联。 另一个重要的 REST 原则是分层系统,这表示组件无法了解它与之交互的中间层以外的组件。 通过将系统知识限制在单个层,可以限制整个系统的复杂性,促进了底层的独立性。 当REST 架构的约束条件作为一个整体应用时,将生成一个可以扩展到大量客户端的应用程序。 它还降低了客户端和服务器之间的交互延迟。 统一界面简化了整个系统架构,改进了子系统之间交互的可见性。 REST 简化了客户端和服务器的实现。 RESTful的实现:RESTful Web 服务与 RPC 样式的 Web 服务了解了什么是什么是REST,我们再看看RESTful的实现。 最近,使用 RPC 样式架构构建的基于 SOAP 的 Web 服务成为实现 SOA 最常用的方法。 RPC 样式的 Web 服务客户端将一个装满数据的信封(包括方法和参数信息)通过 HTTP 发送到服务器。 服务器打开信封并使用传入参数执行指定的方法。 方法的结果打包到一个信封并作为响应发回客户端。 客户端收到响应并打开信封。 每个对象都有自己独特的方法以及仅公开一个 URI 的 RPC 样式 Web 服务,URI 表示单个端点。 它忽略 HTTP 的大部分特性且仅支持 POST 方法。 由于轻量级以及通过 HTTP 直接传输数据的特性,Web 服务的 RESTful 方法已经成为最常见的替代方法。 可以使用各种语言(比如 Java 程序、Perl、Ruby、Python、PHP 和 Javascript[包括 Ajax])实现客户端。 RESTful Web 服务通常可以通过自动客户端或代表用户的应用程序访问。 但是,这种服务的简便性让用户能够与之直接交互,使用它们的 Web 浏览器构建一个 GET URL 并读取返回的内容。 在REST 样式的 Web 服务中,每个资源都有一个地址。 资源本身都是方法调用的目标,方法列表对所有资源都是一样的。 这些方法都是标准方法,包括 HTTP GET、POST、PUT、DELETE,还可能包括 HEADER 和 OPTIONS。 在RPC 样式的架构中,关注点在于方法,而在 REST 样式的架构中,关注点在于资源 —— 将使用标准方法检索并操作信息片段(使用表示的形式)。 资源表示形式在表示形式中使用超链接互联。 Leonard Richardson 和 Sam Ruby 在他们的著作 RESTful Web Services 中引入了术语 REST-RPC 混合架构。 REST-RPC 混合 Web 服务不使用信封包装方法、参数和数据,而是直接通过 HTTP 传输数据,这与 REST 样式的 Web 服务是类似的。 但是它不使用标准的 HTTP 方法操作资源。 它在 HTTP 请求的 URI 部分存储方法信息。 好几个知名的 Web 服务,比如 Yahoo 的 Flickr API 和 API 都使用这种混合架构。 RESTful的实现:RESTful Web 服务的 Java 框架有两个 Java 框架可以帮助构建 RESTful Web 服务。 erome Louvel 和 Dave Pawson 开发的 Restlet(见 参考资料)是轻量级的。 它实现针对各种 RESTful 系统的资源、表示、连接器和媒体类型之类的概念,包括 Web 服务。 在 Restlet 框架中,客户端和服务器都是组件。 组件通过连接器互相通信。 该框架最重要的类是抽象类 Uniform 及其具体的子类 Restlet,该类的子类是专用类,比如 Application、Filter、Finder、Router 和 Route。 这些子类能够一起处理验证、过滤、安全、数据转换以及将传入请求路由到相应资源等操作。 Resource 类生成客户端的表示形式。 JSR-311是 Sun Microsystems 的规范,可以为开发 RESTful Web 服务定义一组 Java API。 Jersey是对 JSR-311 的参考实现。 JSR-311 提供一组注释,相关类和接口都可以用来将 Java 对象作为 Web 资源展示。 该规范假定 HTTP 是底层网络协议。 它使用注释提供 URI 和相应资源类之间的清晰映射,以及 HTTP 方法与 Java 对象方法之间的映射。 API 支持广泛的 HTTP 实体内容类型,包括 HTML、XML、JSON、GIF、JPG 等。 它还将提供所需的插件功能,以允许使用标准方法通过应用程序添加其他类型。 RESTful的实现:构建 RESTful Web 服务的多层架构RESTful Web 服务和动态 Web 应用程序在许多方面都是类似的。 有时它们提供相同或非常类似的数据和函数,尽管客户端的种类不同。 例如,在线电子商务分类网站为用户提供一个浏览器界面,用于搜索、查看和订购产品。 如果还提供 Web 服务供公司、零售商甚至个人能够自动订购产品,它将非常有用。 与大部分动态 Web 应用程序一样,Web 服务可以从多层架构的关注点分离中受益。 业务逻辑和数据可以由自动客户端和 GUI 客户端共享。 惟一的不同点在于客户端的本质和中间层的表示层。 此外,从数据访问中分离业务逻辑可实现数据库独立性,并为各种类型的数据存储提供插件能力。 图1 展示了自动化客户端,包括 Java 和各种语言编写的脚本,这些语言包括 Python、Perl、Ruby、PHP 或命令行工具,比如 curl。 在浏览器中运行且作为 RESTful Web 服务消费者运行的 Ajax、Flash、JavaFX、GWT、博客和 wiki 都属于此列,因为它们都代表用户以自动化样式运行。 自动化 Web 服务客户端在 Web 层向 Resource Request Handler 发送 HTTP 响应。 客户端的无状态请求在头部包含方法信息,即 POST、GET、PUT 和 DELETE,这又将映射到 Resource Request Handler 中资源的相应操作。 每个请求都包含所有必需的信息,包括 Resource Request Handler 用来处理请求的凭据。 从Web 服务客户端收到请求之后,Resource Request Handler 从业务逻辑层请求服务。 Resource Request Handler 确定所有概念性的实体,系统将这些实体作为资源公开,并为每个资源分配一个惟一的 URI。 但是,概念性的实体在该层是不存在的。 它们存在于业务逻辑层。 可以使用 Jersey 或其他框架(比如 Restlet)实现 Resource Request Handler,它应该是轻量级的,将大量职责工作委托给业务层。 Ajax 和 RESTful Web 服务本质上是互为补充的。 它们都可以利用大量 Web 技术和标准,比如 HTML、JavaScript、浏览器对象、XML/JSON 和 HTTP。 当然也不需要购买、安装或配置任何主要组件来支持 Ajax 前端和 RESTful Web 服务之间的交互。 RESTful Web 服务为 Ajax 提供了非常简单的 API 来处理服务器上资源之间的交互。 图1 中的 Web 浏览器客户端作为 GUI 的前端,使用表示层中的 Browser Request Handler 生成的 HTML 提供显示功能。 Browser Requester Handler 可以使用 MVC 模型(JSF、Struts 或 Spring 都是 Java 的例子)。 它从浏览器接受请求,从业务逻辑层请求服务,生成表示并对浏览器做出响应。 表示供用户在浏览器中显示使用。 表示不仅包含内容,还包含显示的属性,比如 HTML 和 CSS。 业务规则可以集中到业务逻辑层,该层充当表示层和数据访问层之间的数据交换的中间层。 数据以域对象或值对象的形式提供给表示层。 从业务逻辑层中解耦 Browser Request Handler 和 Resource Request Handler 有助于促进代码重用,并能实现灵活和可扩展的架构。 此外,由于将来可以使用新的 REST 和 MVC 框架,实现它们变得更加容易,无需重写业务逻辑层。 数据访问层提供与数据存储层的交互,可以使用 DAO 设计模式或者对象-关系映射解决方案(如 Hibernate、OJB 或 iBATIS)实现。 作为替代方案,业务层和数据访问层中的组件可以实现为 EJB 组件,并取得 EJB 容器的支持,该容器可以为组件生命周期提供便利,管理持久性、事务和资源配置。 但是,这需要一个遵从 Java EE 的应用服务器(比如 JBoss),并且可能无法处理 Tomcat。 该层的作用在于针对不同的数据存储技术,从业务逻辑中分离数据访问代码。 数据访问层还可以作为连接其他系统的集成点,可以成为其他 Web 服务的客户端。 数据存储层包括数据库系统、LDAP 服务器、文件系统和企业信息系统(包括遗留系统、事务处理系统和企业资源规划系统)。 使用该架构,您可以开始看到 RESTful Web 服务的力量,它可以灵活地成为任何企业数据存储的统一 API,从而向以用户为中心的 Web 应用程序公开垂直数据,并自动化批量报告脚本。 什么是REST:结束语REST 描述了一个架构样式的互联系统(如 Web 应用程序)。 REST 约束条件作为一个整体应用时,将生成一个简单、可扩展、有效、安全、可靠的架构。 由于它简便、轻量级以及通过 HTTP 直接传输数据的特性,RESTful Web 服务成为基于 SOAP 服务的一个最有前途的替代方案。 用于 web 服务和动态 Web 应用程序的多层架构可以实现可重用性、简单性、可扩展性和组件可响应性的清晰分离。 Ajax 和 RESTful Web 服务本质上是互为补充的。

spring cloud 服务调用方式为什么使用http restful 而不是RPC

简化

REST(REpresentationStateTransfer)描述了一个架构样式的网络系统,比如web应用程序。 它首次出现在2000年RoyFielding的博士论文中,他是HTTP规范的主要编写者之一。 REST指的是一组架构约束条件和原则。 满足这些约束条件和原则的应用程序或设计就是RESTful。 Web应用程序最重要的REST原则是,客户端和服务器之间的交互在请求之间是无状态的。 从客户端到服务器的每个请求都必须包含理解请求所必需的信息。 如果服务器在请求之间的任何时间点重启,客户端不会得到通知。 此外,无状态请求可以由任何可用服务器回答,这十分适合云计算之类的环境。 客户端可以缓存数据以改进性能。 在服务器端,应用程序状态和功能可以分为各种资源。 资源是一个有趣的概念实体,它向客户端公开。 资源的例子有:应用程序对象、数据库记录、算法等等。 每个资源都使用URI(UniversalResourceIdentifier)得到一个惟一的地址。 所有资源都共享统一的界面,以便在客户端和服务器之间传输状态。 使用的是标准的HTTP方法,比如GET、PUT、POST和DELETE。 Hypermedia是应用程序状态的引擎,资源表示通过超链接互联。 另一个重要的REST原则是分层系统,这表示组件无法了解它与之交互的中间层以外的组件。 通过将系统知识限制在单个层,可以限制整个系统的复杂性,促进了底层的独立性。 当REST架构的约束条件作为一个整体应用时,将生成一个可以扩展到大量客户端的应用程序。 它还降低了客户端和服务器之间的交互延迟。 统一界面简化了整个系统架构,改进了子系统之间交互的可见性。 REST简化了客户端和服务器的实现。 RESTful的实现:RESTfulWeb服务与RPC样式的Web服务了解了什么是什么是REST,我们再看看RESTful的实现。 最近,使用RPC样式架构构建的基于SOAP的Web服务成为实现SOA最常用的方法。 RPC样式的Web服务客户端将一个装满数据的信封(包括方法和参数信息)通过HTTP发送到服务器。 服务器打开信封并使用传入参数执行指定的方法。 方法的结果打包到一个信封并作为响应发回客户端。 客户端收到响应并打开信封。 每个对象都有自己独特的方法以及仅公开一个URI的RPC样式Web服务,URI表示单个端点。 它忽略HTTP的大部分特性且仅支持POST方法。 由于轻量级以及通过HTTP直接传输数据的特性,Web服务的RESTful方法已经成为最常见的替代方法。 可以使用各种语言(比如Java程序、Perl、Ruby、Python、PHP和Javascript[包括Ajax])实现客户端。 RESTfulWeb服务通常可以通过自动客户端或代表用户的应用程序访问。 但是,这种服务的简便性让用户能够与之直接交互,使用它们的Web浏览器构建一个GETURL并读取返回的内容。 在REST样式的Web服务中,每个资源都有一个地址。 资源本身都是方法调用的目标,方法列表对所有资源都是一样的。 这些方法都是标准方法,包括HTTPGET、POST、PUT、DELETE,还可能包括HEADER和OPTIONS。 在RPC样式的架构中,关注点在于方法,而在REST样式的架构中,关注点在于资源--将使用标准方法检索并操作信息片段(使用表示的形式)。 资源表示形式在表示形式中使用超链接互联。 LeonardRichardson和SamRuby在他们的著作RESTfulWebServices中引入了术语REST-RPC混合架构。 REST-RPC混合Web服务不使用信封包装方法、参数和数据,而是直接通过HTTP传输数据,这与REST样式的Web服务是类似的。 但是它不使用标准的HTTP方法操作资源。 它在HTTP请求的URI部分存储方法信息。 好几个知名的Web服务,比如Yahoo的FlickrAPI和都使用这种混合架构。 RESTful的实现:RESTfulWeb服务的Java框架有两个Java框架可以帮助构建RESTfulWeb服务。 eromeLouvel和DavePawson开发的Restlet(见参考资料)是轻量级的。 它实现针对各种RESTful系统的资源、表示、连接器和媒体类型之类的概念,包括Web服务。 在Restlet框架中,客户端和服务器都是组件。 组件通过连接器互相通信。 该框架最重要的类是抽象类Uniform及其具体的子类Restlet,该类的子类是专用类,比如Application、Filter、Finder、Router和Route。 这些子类能够一起处理验证、过滤、安全、数据转换以及将传入请求路由到相应资源等操作。 Resource类生成客户端的表示形式。 JSR-311是SunMicrosystems的规范,可以为开发RESTfulWeb服务定义一组JavaAPI。 Jersey是对JSR-311的参考实现。 JSR-311提供一组注释,相关类和接口都可以用来将Java对象作为Web资源展示。 该规范假定HTTP是底层网络协议。 它使用注释提供URI和相应资源类之间的清晰映射,以及HTTP方法与Java对象方法之间的映射。 API支持广泛的HTTP实体内容类型,包括HTML、XML、JSON、GIF、JPG等。 它还将提供所需的插件功能,以允许使用标准方法通过应用程序添加其他类型。 RESTful的实现:构建RESTfulWeb服务的多层架构RESTfulWeb服务和动态Web应用程序在许多方面都是类似的。 有时它们提供相同或非常类似的数据和函数,尽管客户端的种类不同。 例如,在线电子商务分类网站为用户提供一个浏览器界面,用于搜索、查看和订购产品。 如果还提供Web服务供公司、零售商甚至个人能够自动订购产品,它将非常有用。 与大部分动态Web应用程序一样,Web服务可以从多层架构的关注点分离中受益。 业务逻辑和数据可以由自动客户端和GUI客户端共享。 惟一的不同点在于客户端的本质和中间层的表示层。 此外,从数据访问中分离业务逻辑可实现数据库独立性,并为各种类型的数据存储提供插件能力。 图1展示了自动化客户端,包括Java和各种语言编写的脚本,这些语言包括Python、Perl、Ruby、PHP或命令行工具,比如curl。 在浏览器中运行且作为RESTfulWeb服务消费者运行的Ajax、Flash、JavaFX、GWT、博客和wiki都属于此列,因为它们都代表用户以自动化样式运行。 自动化Web服务客户端在Web层向ResourceRequestHandler发送HTTP响应。 客户端的无状态请求在头部包含方法信息,即POST、GET、PUT和DELETE,这又将映射到ResourceRequestHandler中资源的相应操作。 每个请求都包含所有必需的信息,包括ResourceRequestHandler用来处理请求的凭据。 从Web服务客户端收到请求之后,ResourceRequestHandler从业务逻辑层请求服务。 ResourceRequestHandler确定所有概念性的实体,系统将这些实体作为资源公开,并为每个资源分配一个惟一的URI。 但是,概念性的实体在该层是不存在的。 它们存在于业务逻辑层。 可以使用Jersey或其他框架(比如Restlet)实现ResourceRequestHandler,它应该是轻量级的,将大量职责工作委托给业务层。 Ajax和RESTfulWeb服务本质上是互为补充的。 它们都可以利用大量Web技术和标准,比如HTML、JavaScript、浏览器对象、XML/JSON和HTTP。 当然也不需要购买、安装或配置任何主要组件来支持Ajax前端和RESTfulWeb服务之间的交互。 RESTfulWeb服务为Ajax提供了非常简单的API来处理服务器上资源之间的交互。 图1中的Web浏览器客户端作为GUI的前端,使用表示层中的BrowserRequestHandler生成的HTML提供显示功能。 BrowserRequesterHandler可以使用MVC模型(JSF、Struts或Spring都是Java的例子)。 它从浏览器接受请求,从业务逻辑层请求服务,生成表示并对浏览器做出响应。 表示供用户在浏览器中显示使用。 表示不仅包含内容,还包含显示的属性,比如HTML和CSS。 业务规则可以集中到业务逻辑层,该层充当表示层和数据访问层之间的数据交换的中间层。 数据以域对象或值对象的形式提供给表示层。 从业务逻辑层中解耦BrowserRequestHandler和ResourceRequestHandler有助于促进代码重用,并能实现灵活和可扩展的架构。 此外,由于将来可以使用新的REST和MVC框架,实现它们变得更加容易,无需重写业务逻辑层。 数据访问层提供与数据存储层的交互,可以使用DAO设计模式或者对象-关系映射解决方案(如Hibernate、OJB或iBATIS)实现。 作为替代方案,业务层和数据访问层中的组件可以实现为EJB组件,并取得EJB容器的支持,该容器可以为组件生命周期提供便利,管理持久性、事务和资源配置。 但是,这需要一个遵从JavaEE的应用服务器(比如JBoss),并且可能无法处理Tomcat。 该层的作用在于针对不同的数据存储技术,从业务逻辑中分离数据访问代码。 数据访问层还可以作为连接其他系统的集成点,可以成为其他Web服务的客户端。 数据存储层包括数据库系统、LDAP服务器、文件系统和企业信息系统(包括遗留系统、事务处理系统和企业资源规划系统)。 使用该架构,您可以开始看到RESTfulWeb服务的力量,它可以灵活地成为任何企业数据存储的统一API,从而向以用户为中心的Web应用程序公开垂直数据,并自动化批量报告脚本。 什么是REST:结束语REST描述了一个架构样式的互联系统(如Web应用程序)。 REST约束条件作为一个整体应用时,将生成一个简单、可扩展、有效、安全、可靠的架构。 由于它简便、轻量级以及通过HTTP直接传输数据的特性,RESTfulWeb服务成为基于SOAP服务的一个最有前途的替代方案。 用于web服务和动态Web应用程序的多层架构可以实现可重用性、简单性、可扩展性和组件可响应性的清晰分离。 Ajax和RESTfulWeb服务本质上是互为补充的。



相关标签: 一步步指南RESTful服务开发csv函数读取某地区房屋销售数据.csv文件Web使用read使用Restlet简化

上一篇:快速构建高性能RESTAPIRestlet的技巧和窍门

下一篇:MATLAB曲线拟合的深入指南为您的数据注入生

内容声明:

1、本站收录的内容来源于大数据收集,版权归原网站所有!
2、本站收录的内容若侵害到您的利益,请联系我们进行删除处理!
3、本站不接受违法信息,如您发现违法内容,请联系我们进行举报处理!
4、本文地址:http://www.jujiwang.com/article/96d34a1d4424f4d42771.html,复制请保留版权链接!


温馨小提示:在您的网站做上本站友情链接,访问一次即可自动收录并自动排在本站第一位!
随机文章
图像格式转换大师班:深入剖析 convert 命令 (图片格式转换jpg免费)

图像格式转换大师班:深入剖析 convert 命令 (图片格式转换jpg免费)

在当今数字化的世界中,图像格式转换已成为我们生活中不可或缺的一部分,出于各种原因,我们经常需要将图像从一种格式转换为另一种格式,例如在网站、社交媒体或印刷品上使用,本文将探讨强大的convert命令,它是ImageMagick实用程序包的一部分,它提供了一系列用于图像格式转换以及其他图像处理任务的选项,什么是ImageMagick,I...。

互联网资讯 2024-09-28 21:28:50

OpenCL 应用案例剖析:从图像处理到科学计算 (opencl是什么)

OpenCL 应用案例剖析:从图像处理到科学计算 (opencl是什么)

什么是OpenCL,OpenCL,OpenComputingLanguage,是一种开放标准,用于利用异构并行硬件,如中央处理器,CPU,、图形处理器,GPU,、场可编程门阵列,FPGA,等,进行高性能计算,OpenCL提供了一个跨平台的编程环境,可以利用异构系统的并行处理能力,大幅提升计算速度,OpenCL应用案例OpenCL广泛应...。

技术教程 2024-09-28 16:31:58

other:其他人(codeformer)

other:其他人(codeformer)

前言本文将详细介绍一些重要主题,这些主题包括,主题1主题2主题3主题1主题1是一个非常重要的主题,它与其他主题有着密切的关系,主题1的主要内容包括,子主题1子主题2子主题3子主题1子主题1是一个与主题1密切相关的子主题,其主要内容包括,孙主题1孙主题2孙主题3子主题2子主题2是一个与主题1密切相关的子主题,其主要内容包括,孙主题1孙主...。

互联网资讯 2024-09-28 15:13:33

沉迷于文字的海洋:Library.nu提供无穷无尽的阅读材料 (沉迷于文字的魅力)

沉迷于文字的海洋:Library.nu提供无穷无尽的阅读材料 (沉迷于文字的魅力)

对于书虫来说,Library.nu是一个真正的宝库,这个在线图书馆拥有超过1000万册电子书,涵盖了几乎所有你能想到的主题,无论你是喜欢小说、非小说、诗歌还是戏剧,你都能在Library.nu找到适合你的东西,Library.nu的优势使用Library.nu有许多好处,包括,无穷无尽的藏书,Library.nu拥有超过1000万册电...。

技术教程 2024-09-26 15:56:49

获得百度认证:通过百度前端技术学院认证,证明您的技能 (获得百度认证属于文化人么)

获得百度认证:通过百度前端技术学院认证,证明您的技能 (获得百度认证属于文化人么)

百度前端技术学院认证是百度官方推出的认证项目,旨在认可具备扎实前端技术基础和实战能力的技术人员,通过认证,您可以证明自己的技能,在职业发展中获得竞争优势,认证内容百度前端技术学院认证考试内容涵盖以下领域,HTML和CSS基础JavaScript基础前端框架,如React、Vue,前端工程化,如构建工具、代码管理,性能优化...。

最新资讯 2024-09-26 10:23:20

在 Java 中暂停线程的全面指南 (在java中class是什么意思)

在 Java 中暂停线程的全面指南 (在java中class是什么意思)

什么是线程暂停,线程暂停是一种将线程置于休眠状态,使其无法运行的技术,这与线程终止不同,因为暂停的线程可以稍后恢复执行,为什么要暂停线程,暂停线程可以出于多种原因,包括,调试目的协调多个线程之间的操作限制资源消耗在Java中暂停线程的方法在Java中,有几种方法可以暂停线程,wait,方法`wait,`方法是`Object`类的成...。

互联网资讯 2024-09-15 07:12:05

加载速度快且优化良好的 HTML 网页模板,打造流畅无缝的 (加载速度快且速度慢)

加载速度快且优化良好的 HTML 网页模板,打造流畅无缝的 (加载速度快且速度慢)

使用加载速度快的HTML网页模板的优点更高的用户满意度,页面加载速度快可以降低用户流失率,并提高整体用户满意度,更好的搜索引擎排名,搜索引擎青睐加载速度快的网站,并会在搜索结果中将它们排名更高,转化率更高,加载速度快的网站可以提高转化率,因为用户更有可能在网站上停留并采取行动,运营成本更低,网站加载速度快,服务器负载就会更低,从而降低...。

最新资讯 2024-09-13 16:21:11

掌握取整函数的各种形式及其用途 (掌握取整函数的方法)

掌握取整函数的各种形式及其用途 (掌握取整函数的方法)

简介取整函数用于将小数转换为整数,它们在编程中非常有用,例如当我们需要处理金钱或其他需要整数值的场景时,不同的取整函数有几种不同的取整函数,每个函数都有其独特的行为,round,将数字四舍五入到最接近的整数,如果数字正好在两个整数之间,则四舍五入到偶数,floor,将数字向下舍入到最接近的整数,即取数字的小于或等于给定数字的最...。

互联网资讯 2024-09-12 23:37:45

Java 串口高级用法:探索高级功能和最佳实践以提高串口通信效率 (java串口编程)

Java 串口高级用法:探索高级功能和最佳实践以提高串口通信效率 (java串口编程)

串口通信是Java开发中一项重要的技能,它允许应用程序与外部设备交互,例如传感器、调制解调器和其他硬件设备,本指南将深入探讨Java串口编程的高级功能和最佳实践,以提高串口通信效率,高级功能事件通知Java串口API提供事件通知机制,允许应用程序在发生特定事件时收到通知,例如数据可用、串口被打开或关闭等,这允许应用程序响应这些事件并及...。

互联网资讯 2024-09-12 14:27:59

从理论到实践:使用数据库范式优化数据管理 (从理论到实践的飞跃是什么)

从理论到实践:使用数据库范式优化数据管理 (从理论到实践的飞跃是什么)

数据库是现代应用程序和系统中数据管理的关键组件,为了有效地存储和检索数据,数据库应遵循结构化规则和原则以确保数据的完整性和一致性,这就是数据库范式发挥作用的地方,数据库范式简介数据库范式是一组规则,旨在确保数据库设计满足特定的标准并实现最佳的数据管理实践,这些规则有助于,消除数据冗余提高数据查询的效率简化数据库维护提高数据完整性不同的...。

最新资讯 2024-09-12 01:19:12

数据库开发人员:数据库开发人员设计、开发和维护数据库应用程序。他们与商业分析师密切合作,将业务需求转化为技术解决方案。(数据库开发人员是数据库用户吗)

数据库开发人员:数据库开发人员设计、开发和维护数据库应用程序。他们与商业分析师密切合作,将业务需求转化为技术解决方案。(数据库开发人员是数据库用户吗)

概述数据库开发人员是信息技术领域的专业人士,负责设计、开发和维护数据库应用程序,他们与商业分析师密切合作,将业务需求转化为技术解决方案,主要职责设计和开发数据库模型创建和维护数据库结构编写存储过程和函数优化数据库性能实施安全措施以保护数据提供技术支持和培训与商业分析师的合作数据库开发人员与商业分析师密切合作,以确保数据库应用程序满足业...。

技术教程 2024-09-10 03:02:25

揭开Java语言的神秘面纱:10个核心特性,赋予其无限可能 (揭开童年父母经典骗术的真相)

揭开Java语言的神秘面纱:10个核心特性,赋予其无限可能 (揭开童年父母经典骗术的真相)

Java作为一门通用编程语言,已经存在了二十多年,它以其强大的功能和广泛的应用领域而闻名,Java之所以经久不衰,离不开其核心的设计特性,这些特性赋予了它灵活性、可靠性和可移植性,1.面向对象Java采用面向对象编程范式,它将程序组织成对象和类,对象代表现实世界的实体,而类则定义了对象的属性和行为,面向对象的设计促进了模块化、重用性和...。

互联网资讯 2024-09-07 06:52:44