首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【RESTful】RESTful API 接口设计规范 | 示例

其通过HTTP协议发送请求和接收结果采用XML格式封装,并增加了一些特定的HTTP消息头,这些特定的HTTP消息头和XML内容格式就是SOAP协议。...状态码:当客户端发送一个请求,服务端应当响应什么状态码 错误处理:如当发现客户端传入的参数有问题,该返回什么样的状态信息。...返回结果:如POST资源的时候,需要返回一个资源实例;GET资源列表,需要返回一个资源数组; 资源路径 RESTful架构中,每个网址代表一个资源,所以网址中不能有动词,只能有名词。...一般而言,返回的信息中将error作为键名,出错信息作为键值即可,例如: { "error":"参数错误" } 返回结果 针对不同操作(如GET,POST),服务器向用户返回的结果应该符合以下规范:...GET/collections: 返回资源对象的列表数组) GET/collections/identity : 读取资源,传入标识符(identity),服务端返回标识符指定的单个资源对象 POST

1.3K20

HTTP客户端工具该选哪个?进来看

Java应用中需要调用其他应用提供的HTTP服务API,通常需要使用一些HTTP客户端组件。 而可选择的HTTP客户端有很多,本期内容主要介绍Java应用程序中可以使用的HTTP客户端工具。...Boot中的WebClient 为了更好的进行对比,我们示例中将分别使用不同的客户端完成异步GET请求和同步POST请求。...创建请求,我们通过调用get()方法将HTTP方法设置为GET,并在设置10秒的超时时间。...同步POST请求 使用Apache HttpClient发送同步POST请求代码如下: 发送同步POST请求的步骤如下: 首先通过prepareRequest()方法创建出一个JSON字符串,作为请求数据...API地址; 调用链中的retrieve()方法用于进行API调用,也就是发送请求; 然后并通过bodyToMono()方法获取响应,该响应通过bodyToMono()方法转换为Mono对象; 最后

4.9K00
您找到你想要的搜索结果了吗?
是的
没有找到

epoll 基于非阻塞IO事件驱动

= EINTR) { /* 没做出错处理 */ } printf(“%s: accept, %s\n”, __func__, strerror(errno)); return; } do { // 遍历全局的数组寻找到一个当前没有被监听的数组...nonblocking failed, %s\n”, __func__, strerror(errno)); break; } // 将这个新来的cfd初始化,让其默认相应recvdata函数 // 把结构自身作为回调函数的参数传递...,让其可以回调函数中使用该结构 eventset(&g_events[i], cfd, recvdata, &g_events[i]); // 添加这个新的文件描述符到监控列表 eventadd(g_efd...*)arg; // 接收数据 int len = recv(fd, ev->buf, sizeof(ev->buf), 0); // 接收完数据后立即从监控列表中将这个文件描述符删除 eventdel(...struct myevent_s* ev = (struct myevent_s*)arg; // ev->len 是recvdata设定的长度,ev->buf读也用,写也用 int len =

15510

万字+33张图探秘OpenFeign核心架构原理

请求,就知道请求路径以及方法的第几个参数对应是Http请求的哪部分数据 当调用动态代理方法的时候,Feign就会将上述解析出来的Http请求基本参数和方法入参组装成一个Http请求 然后发送Http请求...所以就自己实现了Contract接口 2、Encoder 通过名字也可以看出来,这个其实用来编码的 具体的作用就是将请求对应的方法参数序列化成字节数组 Feign默认的Encoder实现只支持请求对应的方法参数类型为...Encoder的实现很难用 于是乎,Spring就实现了Encoder接口 可以将任意请求对应的方法参数类型对象序列化成字节数组 3、Decoder Decoder的作用恰恰是跟Encoder相反 Encoder...是将请求对应的方法参数序列化成字节数组 而Decoder其实就是将响应由字节流反序列化成方法返回值类型的对象 Decoder默认情况下跟Encoder的默认情况是一样的,只支持反序列化成字节数组或者是...6、RequestInterceptor RequestInterceptor它其实是一个发送请求前的一个拦截接口 通过这个接口,发送Http请求之前再对Http请求的内容进行修改 比如我们可以设置一些接口需要的公共参数

53510

Spring实战》摘录 - 23

; 忽视请求的Accept头部信息; 将请求的扩展名映射为特定的媒体类型; 将JAF(Java Activation Framework)作为根据扩展名查找媒体类型的备用方案。...; 一个使用String作为URL格式,并使用Map指明URL参数; 一个使用String作为URL格式,并使用可变参数列表指明URL参数。...方法,返回一个从响应映射得到的对象; getForEntity() --- 发送一个HTTP GET请求,返回的ResponseEntity包含了响应所映射成的对象; getForObject()...--- 发送一个HTTP GET请求,返回的请求将映射为一个对象; headForHeaders() --- 发送HTTP HEAD请求,返回包含特定资源URL的HTTP头; optionsForAllow...() --- 发送HTTP OPTIONS请求,返回对特定URL的Allow头信息; postForEntity() --- POST数据到一个URL,返回包含一个对象的ResponseEntity,这个对象是从响应中映射得到的

84320

SpringMVC入门

SpringMVC 单次请求过程 发送请求localhost/save web容器发现所有请求都经过SpringMVC,将请求交给SpringMVC处理 解析请求路径/save 由/save匹配执行对应的方法...save() 执行save() 检测到有@ResponseBody直接将save()方法的返回值作为响应求返回给请求方 四、bean加载控制 Controller加载控制与业务bean加载控制 SpringMVC...,访问,使用多个向明名称的访问参数,如: localhost/user/arrayParam?...likes=吃&likes=喝&likes=拉&likes=撒&likes=睡 集合类型参数 当接收List集合参数,传递参数的方式与数组类型参数传递方式一样,接收参数,要在形参前使用@RequestParam...,主要为json数据 @PathVariable用于接收路径参数,使用{参数名称}描述路径参数 应用 后期开发中,发送请求参数超过1个,以json格式为主,@RequestBody应用较广 如果发送

16810

芋道 Spring Boot WebSocket 入门

这样,使用到同步模型的业务场景下,Message 实现类使用 Request/Reponse 作为后缀。例如说,用户认证请求、删除一个好友请求等等。...服务端接收到发送消息的请求,需要异步响应发送是否成功。所以,创建 SendResponse 类,发送消息响应结果的 Message 。...拉取完成后,更新消息列表中最大的消息编号为新的本地的消息编号。 服务端收到客户端拉取增量的消息列表,将请求的编号记录到数据库中,用于知道客户端此时本地的最新消息编号。...客户端发送带有消息版本号的 HTTP 请求到服务端。 如果服务端已有比客户端新的消息编号,则直接返回增量的消息列表。...客户端收到 HTTP 请求超时时,立即又重新发起带有消息版本号的 HTTP 请求到服务端。如此反复循环,通过消息编号作为增量标识,达到实时获取消息的目的。

2.8K41

jQuery Ajax 全解析

注:不知道为什么URL写绝对路径FF下会出错,知道的麻烦告诉下。下面的get()和post()示例使用的是绝对路径,所以FF下你将会出错并不会看到返回结果。...请求成功可调用回调函数。如果需要在出错执行函数,请使用 .ajax。示例代码: $.get("....其实应该为客户端请求的类型(JSON,XML,等等) 这是一个简单的 POST 请求功能以取代复杂 .ajax 。请求成功可调用回调函数。如果需要在出错执行函数,请使用 .ajax。...数据类型设置为 "jsonp" ,jQuery 将自动调用回调函数。(这个我不是很懂) 参数列表: 参数名类型描述urlString(默认: 当前页地址) 发送请求的地址。...dataObject, String发送到服务器的数据。将自动转换为请求字符串格式。GET 请求中将附加在 URL 后。查看 processData 选项说明以禁止此自动转换。

9.5K10

jQuery ajax() 方法

注:不知道为什么URL写绝对路径FF下会出错,知道的麻烦告诉下。下面的get()和post()示例使用的是绝对路径,所以FF下你将会出错并不会看到返回结果。...请求成功可调用回调函数,如果需要在出错执行函数,请使用 $.ajax。 示例代码: $.get("....其实应该为客户端请求的类型(JSON,XML,等等) 这是一个简单的 POST 请求功能以取代复杂 $.ajax 。请求成功可调用回调函数。如果需要在出错执行函数,请使用 $.ajax。...数据类型设置为 "jsonp" ,jQuery 将自动调用回调函数。(这个我不是很懂) 参数列表: 参数名 类型 描述 url String (默认: 当前页地址) 发送请求的地址。...data Object,String 发送到服务器的数据。将自动转换为请求字符串格式。GET 请求中将附加在 URL 后。查看 processData 选项说明以禁止此自动转换。

2.5K60

java之@RequestBody的使用

基础知识介绍: @RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求中的数据的);GET方式无请求,所以使用@RequestBody接收数据,前端不能使用...即:如果参数放在请求中,传入后台的话,那么后台要用@RequestBody才能接收到;如果不是放在 请求中的话,那么后台接收前台传过来的参数,要用@RequestParam...如果后端参数是一个对象,且该参数前是以@RequestBody修饰的,那么前端传递json参数,必须满足以下要求: 后端@RequestBody注解对应的类将HTTP的输入流(含请求)装配到目标类...如果某个参数没有value的话,传json字符串给后端,要么干脆就不把该字段写到json字符串中;要么写value, 必须有值,null 或""都行。...Spring采用CharacterEncodingFilter设置了默认编码为UTF-8),然后public class BeanDeserializer extends BeanDeserializerBase

7.1K32

前端必知的ajax

这是一个简单的 GET 请求功能以取代复杂 $.ajax 。请求成功可调用回调函数。如果需要在出错执行函数,请使用 $.ajax。示例代码: $.get("....其实应该为客户端请求的类型(JSON,XML,等等) 这是一个简单的 POST 请求功能以取代复杂 $.ajax 。请求成功可调用回调函数。如果需要在出错执行函数,请使用 $.ajax。...数据类型设置为 "jsonp" ,jQuery 将自动调用回调函数。(这个我不是很懂) 参数列表: 参数名 类型 描述 url String (默认: 当前页地址) 发送请求的地址。...data Object,String 发送到服务器的数据。将自动转换为请求字符串格式。GET 请求中将附加在 URL 后。查看 processData 选项说明以禁止此自动转换。...如果为数组,jQuery 将自动为不同值对应同一个名称。如 {foo:["bar1", "bar2"]} 转换为 '&foo=bar1&foo=bar2'。

3K40

Java中使用RestTemplate调用api

REST的基础知识 当谈论REST,有一种常见的错误就是将其视为“基于URL的Web服务”——将REST作为另一 种类型的远程过程调用(remote procedure call,RPC)机制,就像SOAP...execute() URL上执行特定的HTTP方法,返回一个从响应映射得到的对象 getForEntity() 发送一个HTTP GET请求,返回的ResponseEntity包含了响应所映射成的对象...getForObject() 发送一个HTTP GET请求,返回的请求将映射为一个对象 postForEntity() POST 数据到一个URL,返回包含一个对象的ResponseEntity,这个对象是从响应中映射得到的...postForObject() POST 数据到一个URL,返回根据响应匹配形成的对象 headForHeaders() 发送HTTP HEAD请求,返回包含特定资源URL的HTTP头 optionsForAllow...,参数列表,可以使用 {} 进行url路径占位符 //有参数的 getForEntity 请求,参数列表 @RequestMapping("getForEntity/{id}") public

1.6K10

详解 RestTemplate 操作

作为开发人员,我们经常关注于构建伟大的软件来解决业务问题。数据只是软件完成工作  要处理的原材料。但是如果你问一下业务人员,数据和软件谁更重要的话,他们很可能会选择  数据。...REST的基础知识 当谈论REST,有一种常见的错误就是将其视为“基于URL的Web服务”——将REST作为另一  种类型的远程过程调用(remote procedure call,RPC)机制,就像...delete() 特定的URL上对资源执行HTTP DELETE操作 exchange()  URL上执行特定的HTTP方法,返回包含对象的ResponseEntity,这个对象是从响应中...  映射得到的 execute() URL上执行特定的HTTP方法,返回一个从响应映射得到的对象 getForEntity() 发送一个HTTP GET请求,返回的ResponseEntity...包含了响应所映射成的对象 getForObject() 发送一个HTTP GET请求,返回的请求将映射为一个对象 postForEntity() POST 数据到一个URL,返回包含一个对象的

3K21

Spring RestTemplate进阶:拦截器

中将通过一个示例来展示如何创建一个Spring RestTemplate拦截器及如何使用这个拦截器来添加一个自定义HTTP头。 2....创建拦截器 大多数编程范例中,拦截器是程序员能够通过拦截来控制程序执行的重要途径。基于不同的场景,Spring框架还支持各式各样的拦截器。...配置RestTemplate 既然已经创建了拦截器,那么就让我们创建RestTemplate bean添加这个拦截器: @Configuration public class RestClientConfig...因此,为了确保一切正常工作,上面的示例代码只拦截器列表为空的时候才重新进行初始化。...这个测试服务器将返回我们的请求以及一些元数据。 6. 总结 本教程介绍如何设置拦截器并将其配置到RestTemplate对象中。这种拦截器还可以用于过滤、监控和控制传入的请求

2.5K20

Ajax第一节

发送get请求 XMLHttpRequest以异步的方式发送HTTP请求,因此发送请求,一样需要遵循HTTP协议。 使用XMLHttpRequest发送get请求的步骤 //1....设置请求头 //请求头中可以设置Content-Type,用以说明请求主体的内容是如何编码,get请求没有请求,无需设置 //4....设置请求 //get请求请求为空,因为参数列表拼接到url后面了 xhr.send(null); 注意点 : get请求,设置请求行时,需要把参数列表拼接到url后面 get请求不用设置请求头,...设置请求行 post请求的参数列表请求 xhr.open("post", "02.php"); // 2..../x-www-form-urlencoded, 标记请求解析方式 post 请求需要将参数列表设置到请求中 获取响应 readyState readyState:记录了XMLHttpRequest对象的当前状态

3.9K20

Chrome开发者工具的11个高级使用技巧

重新发送 XHR 请求 XHR,即 XMLHttpRequest,是一种创建 AJAX 请求的 JavaScript API 。...我们的前端项目中,我们经常需要使用 XHR 向后端发出请求来获取数据。如果你想重新发送 XHR 请求,那么该怎么办呢? 对于新手来说,可能会选择刷新页面,但这可能比较麻烦。...打开“网络”面板 单击 XHR 按钮 选择要重新发送的 XHR 请求 重放 XHR 请求 下面是一个 gif 示例,方便你理解: ? 4....这样的数组控制台中不容易查看阅读。如果数组更长,元素内容很复杂,那么该数据将变得更加难以理解。 幸运的是,Chrome 提供了表格展示功能,可以将数组对象进行列表展示,方便理解。 ?...举个例子 下面有一个测试网页: 我们浏览器中将其打开,然后通过“元素”面板对 CSS 样式进行调试。 ? 隐藏元素的快捷方式 调试 CSS 样式,我们通常需要隐藏一个元素。

2.2K60
领券