REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。
Web 应用程序最重要的 REST 原则是,客户端和服务器之间的交互在请求之间是无状态的。从客户端到服务器的每个请求都必须包含理解请求所必需的信息。如果服务器在请求之间的任何时间点重启,客户端不会得到通知。此外,无状态请求可以由任何可用服务器回答,这十分适合云计算之类的环境。客户端可以缓存数据以改进性能。
REST(REpresentational State Transfer),中文翻译为表述性转移。这个概念在Roy Thomas Fielding的paper中得到了很好的论证。文章的题目叫《Architectural Styles and the Design of Network-based Software Architectures》,是一篇架构描述不可多得的文章。
REST的风格主要有以下特点:
1、REST风格 的服务是通信无状态的(communicate statelessly)
从客户端向服务器发出的每一次请求都必须包含理解该请求的所有必须信息。不能利用服务器上的上下文。
2、具有统一的接口。
如:GET、POST、DELETE、PUT等,这些接口能基本完成日常所需的CRUD操作。
3、所有信息都被抽象为资源,并用一个URI唯一标识。
4、REST组件通过交换资源的表述来对资源进行处理,资源的多重表述。
如后台的多样化返回:XML或JSON等。这是REST和RPC(Remote Procedure Call)方法的主要区别。
REST强调的是组件交互的伸缩性,接口的通用性,组件部署的独立性。以JWS为例,在实际开发中可以用XSLT和JAXP完成数据的转换工作。所以,我们可以用JWS方式来部署REST服务。又回到了之前提出的疑问了,SOA这样的架构或者拿CXF写的服务和REST之间到底有什么区别。
使用REST风格来做服务的话,对程序的侵入性可以讲到很低,不用像传统的WSDL开发那样,往自己程序里写东西。而且REST的统一接口有利于服务的维护。当然也正是因为使用这些统一接口使得服务的灵活性不是那么的好,虽然减少了服务端的开发量,但是增加了前台的开发量。所以我觉得可以将两者结合开发,针对那些通用的,对外的可用REST风格包装成Facade,而那些特定的,需要订制的,则采用SOA的方式部署。
分享到:
相关推荐
Python Flask高级编程之RESTFul API前后端分离精讲第六章节Python Flask高级编程之RESTFul API前后端分离精讲第六章节Python Flask高级编程之RESTFul API前后端分离精讲第六章节Python Flask高级编程之RESTFul API...
SpringBoot+Mybatis+CXF框架,实现Restful api与 WebService api接口的大实验 本实验的主要目标是使用SpringBoot、Mybatis和CXF框架来实现Restful API和WebService API接口的大实验。下面是实验的详细介绍: 标题...
restful api访问k8s集群,增删改查信息。 需要预先创建访问权限的配置。 官网api文档 https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.9/ 下面罗列部分api curl -u admin:admin ...
本文将深入探讨如何使用C和C++来实现HTTP服务,并开发RESTful API服务器。 首先,HTTP(超文本传输协议)是互联网上应用最为广泛的一种网络协议,用于从万维网服务器传输超文本到本地浏览器。它是一个基于请求与...
"Java调用Restful API接口的方式" Java调用Restful API接口是Java开发中非常重要的一部分,了解Java调用Restful API接口的方式可以帮助开发者更好地理解和使用相关技术。本文将详细介绍Java调用Restful API接口的...
Python Flask高级编程之RESTFul API前后端分离精讲Python Flask高级编程之RESTFul API前后端分离精讲Python Flask高级编程之RESTFul API前后端分离精讲Python Flask高级编程之RESTFul API前后端分离精讲Python Flask...
### RESTful API 接口说明 #### 一、RESTful API 概述 RESTful(Representational State Transfer)API 是一种构建网络应用和服务的标准方法,它遵循特定的约束条件和原则,利用HTTP协议来实现客户端与服务器之间...
Python Flask高级编程之RESTFul API前后端分离精讲第二章节Python Flask高级编程之RESTFul API前后端分离精讲第二章节Python Flask高级编程之RESTFul API前后端分离精讲第二章节Python Flask高级编程之RESTFul API...
本项目提供了一个RestfulApi服务端的示例,帮助开发者了解如何构建这样的服务。 在RestfulApi服务端的实现中,通常会用到以下技术栈: 1. **服务器框架**:如Spring Boot或Express.js,它们为快速构建RESTful API...
thinkphp6 RESTful API开发 开发过程记录笔记 https://blog.csdn.net/weixin_41120504/article/details/115638094
### RESTful API设计规范详解 #### 一、RESTful简介 RESTful是一种广泛应用于Web服务的设计风格,全称为Representational State Transfer(表述性状态转移)。它并非一项具体的技术标准,而是一系列设计原则和约束...
在`src/main/java`下创建一个新的包,例如`com.example.restfulapi.controller`,然后在此包中创建一个名为`DemoController`的类。使用`@RestController`注解标记该类为REST控制器,使用`@RequestMapping`定义根路径...
"基于 Go 语言构建企业级的 RESTful API 服务企业级go gin 开发框架 附带源码" 本小册将指导读者如何使用 Go 语言构建企业级的 RESTful API 服务,涵盖了从准备阶段到部署阶段的各个流程。小册的内容包括如何安装和...
在当今信息技术飞速发展的时代,RESTful API已经成为构建互联网应用的基础。RESTful API提供了一种简单、高效、与语言无关的方法来构建Web服务。Python作为一种广泛使用的高级编程语言,以其简洁明了的语法、丰富的...
### RESTful API 设计最佳实践 #### 一、引言 随着互联网技术的发展,Web 应用变得越来越复杂,为了支持这些应用的功能扩展和服务交互,API 的设计变得尤为重要。RESTful API 是一种基于 HTTP 协议的应用程序编程...
【Golang Gin RESTFul API with SQLite】是一个项目,它教你如何使用Go语言的Gin框架来构建符合RESTful架构的API,并结合SQLite数据库进行数据存储。在这个项目中,我们将探讨Gin框架的核心特性,RESTful API设计...
OPCDA转restfulAPI,opcDA与mes或其它第三方通讯服务 x86
为了解决上面这样的问题,本文将介绍RESTful API的重磅好伙伴Swagger2,它可以轻松的整合到Spring Boot中,并与Spring MVC程序配合组织出强大RESTful API文档。它既可以减少我们创建文档的工作量,同时说明内容又...