restful

RESTful API 实践

删除回忆录丶 提交于 2019-12-07 06:43:26
欢迎访问陈同学 博客原文 猪齿鱼 REST API 规范 本文记录了 RESTful API 的一些实践经验,内容综合了部分 后端圈.研习小组 关于 REST 的探讨结果,仅简单带一下理论知识,更多可参考: Roy Thomas Fielding 2000年的 博士论文 中 Chapter 5: Representational State Transfer (REST) 阮一峰:理解 RESTful 架构 简介 REST 是 Representational State Transfer 首字母缩写,翻译为 表现层状态转化 ,加上主语 资源 ,应为: 资源通过表现层进行状态转化 。 例如:服务端提供接口查询单个用户,返回数据格式可以是:JSON、XML、文本、HTML等,这就是资源的表现形式。客户端通过HTTP(HTTPS)协议传递某种格式(表现层)的数据给服务端来完成对资源的状态变更。 技术团队理解并统一遵循 RESTful 接口的规范,可避免杂乱的接口定义,使得接口顾名思义,提高效率。 接口组成 接口由HTTP动词、域名、版本、Endpoint组成。 GET https://example.com/api/v1/users Endpoint Endpoint 在 RESTful 中理解为资源,使用复数名词来命名。例如:用户 users。 版本 表示接口版本号,可直接放入URL

RESTful API开发规范

女生的网名这么多〃 提交于 2019-12-07 06:41:13
API规范 REST API规范 基本规则 除特殊说明外,Web API遵循如下基本原则: l BIM工作平台以RESTful Web Service的形式提供API。 l 基于安全性考虑,BIM工作平台API需要使用SSL加密传输协议(HTTPS)进行访问。 l BIM工作平台使用 OAuth 2.0协议 进行API访问授权控制。 l 业务系统在访问BIM工作平台API前,需要获得BIM工作平台颁发的应用密钥(APP_KEY和APP_SECRET),并赋予相应的API授权范围。 请求方法 BIM工作平台Web API使用GET、POST、PUT、DELETE等4个标准HTTP请求方法,用于对资源进行访问、创建、修改和删除等标准操作。 l GET:幂等操作,通常用于表达“获取”、“查询”等语义。典型使用场景包括:获取特定资源信息;根据指定条件查询资源信息。 l POST:非幂等操作,通常用于执行“新建”、“创建”等语义。典型使用场景包括:创建一个或多个新的资源; 执行需要大量数据输入的查询;执行不安全或非幂等操作,但其他HTTP方法看上去不适合时。 l PUT:幂等操作,通常用于执行“修改”、“更新”等语义。典型使用场景包括: 更新一个或多个资源;在应用能够决定资源URL的情况下,创建一个资源。 l DELETE:幂等操作,通常用于执行“删除”语义。典型使用场景包括

REST API(RESTful)基于微服务SpringCloud项目的编程

て烟熏妆下的殇ゞ 提交于 2019-12-07 06:39:36
RESTful 架构风格概述 在当前互联网环境下,随着docker等技术的兴起,『微服务』的概念也越来越被大家接受并应用于实践,日益增多的web service逐渐统一于RESTful 架构风格,如果开发者对RESTful 架构风格不甚了解,则开发出的所谓RESTful API总会貌合神离,不够规范。 本文是我对RESTful 架构风格的一些理解,和大家分享一下,不喜勿喷,欢迎讨论。 1.RESTful架构风格 RESTful架构风格最初由Roy T. Fielding(HTTP/1.1协议专家组负责人)在其2000年的博士学位论文中提出。HTTP就是该架构风格的一个典型应用。从其诞生之日开始,它就因其可扩展性和简单性受到越来越多的架构师和开发者们的青睐。一方面,随着云计算和移动计算的兴起,许多企业愿意在互联网上共享自己的数据、功能;另一方面,在企业中,RESTful API(也称RESTful Web服务)也逐渐超越SOAP成为实现SOA的重要手段之一。时至今日,RESTful架构风格已成为企业级服务的标配。 REST即Representational State Transfer的缩写,可译为"表现层状态转化”。REST最大的几个特点为:资源、统一接口、URI和无状态。 1.1 资源 所谓"资源",它可以是一段文本、一张图片、一首歌曲、一种服务,总之就是一个具体的实在

理解RESTful架构

半城伤御伤魂 提交于 2019-12-07 06:35:30
作者: 阮一峰 日期: 2011年9月12日 越来越多的人开始意识到, 网站即软件 ,而且是一种新型的软件。 这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency)、高并发等特点。 网站开发,完全可以采用软件开发的模式。但是传统上,软件和网络是两个不同的领域,很少有交集;软件开发主要针对单机环境,网络则主要研究系统之间的通信。互联网的兴起,使得这两个领域开始融合, 现在我们必须考虑,如何开发在互联网环境中使用的软件。 RESTful架构,就是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。 但是,到底什么是RESTful架构,并不是一个容易说清楚的问题。下面,我就谈谈我理解的RESTful架构。 一、起源 REST这个词,是 Roy Thomas Fielding 在他2000年的 博士论文 中提出的。 Fielding是一个非常重要的人,他是HTTP协议(1.0版和1.1版)的主要设计者、Apache服务器软件的作者之一、Apache基金会的第一任主席。所以,他的这篇论文一经发表,就引起了关注,并且立即对互联网开发产生了深远的影响。 他这样介绍论文的写作目的: "本文研究计算机科学两大前沿----软件和网络----的交叉点。长期以来,软件研究主要关注软件设计的分类

Spring 4.x MVC and RESTful service Demo

岁酱吖の 提交于 2019-12-06 18:35:04
This project will demo the techniques that would be used in our project. This version 1 will be just a general-purpose website (I call it bare version ), it has a front-end and a back-end, the backend requires login. The documentation is in another project, it's just my personal learning notes. Todo Web services security (done) Asked one question on stackoverflow (replied) RESTful CRUD (@RestController in Spring4.x) (done) Slf4j + Log4j (done) Error handling(ongoing) what's the difference between ctx-annotation-config and mvc-annotation-driven(reading) i18n: MessageSourceAware A simple Android

restful webservice SOAP webservice

删除回忆录丶 提交于 2019-12-06 18:12:22
为了说明这个问题,必须的纠正一下我们对HTTP的 认识 。 首先回顾一下OSI七层模型 OSI(Open System Interconnection,开放系统互连)七层模型 7 应用层 6 表示层 5 会话层 4 传输层 3 网络层 2 数据链路层 1 物理层 HTTP并不是一种传输层的“传输协议”(第四层),而是一种应用层的“转移协议”(最高层)。 SOAP类型的WebService就是最好的例子,SOAP消息完全就是将Http协议作为消息承载, 以至于对于Http协议中的各种参数(例如编码,错误码等)都置之不顾。 其实,它有着非常丰富的语义,Http协议所抽象的get,post,put,delete就好比数据库中最基本的增删改查,而互联网上的各种资源就好比数据库中的记录。 restful webservice Rest(Representional state transfer) WEB的在世界范围类的普及和成功,人们从技术角度对它的总结,既--分布式架构,注意强调的是架构风格-architectural style. 是一种全新的Web开发思维方式, 一种基于Http协议来资源操作的思想,是基于URI来设计系统的架构。 那么它的特点主要由以下五点 1.面向资源(resource) 2.每个资源都对应唯一的URI uniform resource identifier 3

Restful API接口规范

拈花ヽ惹草 提交于 2019-12-06 14:59:14
1. 域名 应该尽量将API部署在专用域名之下。 https://api.example.com 如果确定API很简单,不会有进一步扩展,可以考虑放在主域名下。 https://example.org/api/ 2. 版本(Versioning) 应该将API的版本号放入URL。 http://www.example.com/app/1.0/foo http://www.example.com/app/1.1/foo http://www.example.com/app/2.0/foo 另一种做法是,将版本号放在HTTP头信息中,但不如放入URL方便和直观。 Github 就采用了这种做法。 因为不同的版本,可以理解成同一种资源的不同表现形式,所以应该采用同一个URL。版本号可以在HTTP请求头信息的Accept字段中进行区分(参见 Versioning REST Services ): Accept: vnd.example-com.foo+json; version=1.0 Accept: vnd.example-com.foo+json; version=1.1 Accept: vnd.example-com.foo+json; version=2.0 3. 路径(Endpoint) 路径又称"终点"(endpoint),表示API的具体网址,每个网址代表一种资源

RESTFul接口测试工具:Wisdom RESTClient

依然范特西╮ 提交于 2019-12-06 06:24:20
Wisdom RESTClient 是由个人所开发的一款自动化测试REST API的工具。 它可以自动化测试REST API并生成精美的测试报告,同时基于测试过的历史数据,可以生成精美的REST API文档。 使用注意事项; 1.下载JAR包 restclient-1.2.jar ; 2.使用前请先安装 Java 1.7 或者更高版本; 3. 双击 restclient-1.2.jar 即可运行工具。 进入软件后的页面: 点击History,可以查看历史测试数据: 点击Apidoc下的Create按钮,可以生成测试报告: 来源: oschina 链接: https://my.oschina.net/u/3322035/blog/1805203

restful风格详解

拟墨画扇 提交于 2019-12-06 05:51:29
一.概念 RESTful架构,就是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便 ,所以正得到越来越多网站的采用。 REST这个词,是 Roy Thomas Fielding 在他2000年的博士论文中提出的. Fielding将他对互联网软件的架构原则,定名为 REST ,即 Representational State Transfer 的缩写。即" 表现层状态转化 "。如果 一个架构符合REST原则,就称它为RESTful架构。 二.理解 RESTful架构 , Representational State Transfer : 表现层状态转化 1.资源(Resources) : 每种资源对应一个特定的URI(统一资源定位符),URI为每一个资源的地址或独一无二的识别符; 2.表现层(Representation) : 把"资源"具体呈现出来的形式,叫做它的"表现层" ,URI只代表"资源"的位置。它的具体表现形式,应该在HTTP请求的头信息中用 Accept 和 Content-Type 字段指定,这两个字段才是对"表现层"的描述。 3.状态转化(State Transfer) :客户端想要操作服务器,必须通过某种手段,让服务器端发生"状态转化"。而这种转化是建立在表现层之上的,所以就是"表现层状态转化"。客户端用到的手段就是HTTP协议里面

理解RESTful架构

≯℡__Kan透↙ 提交于 2019-12-06 05:42:52
越来越多的人开始意识到, 网站即软件 ,而且是一种新型的软件。 这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency)、高并发等特点。 网站开发,完全可以采用软件开发的模式。但是传统上,软件和网络是两个不同的领域,很少有交集;软件开发主要针对单机环境,网络则主要研究系统之间的通信。互联网的兴起,使得这两个领域开始融合, 现在我们必须考虑,如何开发在互联网环境中使用的软件。 RESTful架构,就是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。 但是,到底什么是RESTful架构,并不是一个容易说清楚的问题。下面,我就谈谈我理解的RESTful架构。 一、起源 REST这个词,是 Roy Thomas Fielding 在他2000年的 博士论文 中提出的。 Fielding是一个非常重要的人,他是HTTP协议(1.0版和1.1版)的主要设计者、Apache服务器软件的作者之一、Apache基金会的第一任主席。所以,他的这篇论文一经发表,就引起了关注,并且立即对互联网开发产生了深远的影响。 他这样介绍论文的写作目的: "本文研究计算机科学两大前沿----软件和网络----的交叉点。长期以来,软件研究主要关注软件设计的分类、设计方法的演化