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

弱网客户端的福音:节省带宽的利器【ETag】

总结 1.概览 本文将重点介绍如何在Spring中添加ETag功能、如何使用 curl来验证添加了ETag功能的REST API以及对这些REST API进行集成测试。...ETag常用于这两个场景——缓存和条件请求。ETag的值可以是根据响应体计算出来的hash值。因为可能使用Hash函数,所以即使响应体出现很小的改动也会极大地改变输出,也就是ETag值会发生变化。...这只适用于比较严格的ETag——协议也提供了一个简单的ETag。 使用If-*头将一个标准的GET请求转换为条件GET。...3.使用 curl来验证ETag功能 一个通过客户端和服务器通信来简单地测试ETag特性的操作可以分解为以下步骤: – 首先,客户端发起一个对REST API的调用——响应包括了需要存储的ETag头,以便进一步使用...这是一个很浅的实现——ETag值是基于响应来计算的,这将节省带宽,不是服务器性能。

1.8K20

技术应用|用于 REST API 开发和测试的 10 大工具

在接口测试方面,Postman能够模拟客户端发送请求,获取响应结果,并验证响应中的结果数据是否预期值相匹配。...Swagger简介:Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的Web服务。它的目标是使客户端和文件系统作为服务器以同样的速度来更新。...文件的方法、参数和模型紧密集成到服务器端的代码,允许API始终保持同步。Swagger让部署管理和使用功能强大的API从未如此简单。...Swagger的目标是为REST APIs定义一个标准的、语言无关的接口,使人和计算机能发现和理解各种服务的功能,不需要看到源码或文档。...JMeter (最常用)简介:JMeter是Apache公司使用Java平台开发的一款开源的负载和性能测试工具,它可用于静态的和动态的资源进行性能测试。

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

走进Java接口测试之接口管理工具Swagger2

一个规范和完整的框架,用于生成、描述、调用和可视化Restful 风格的Web服务,加上Swagger-UI,可以有很好的呈现。...良好的文档可以减少沟通成本,达到事半功倍的效果。 有时对一些API说明的理解比较模糊,总想着能直接验证一下自己的理解就好了,不是需要去项目写测试代码来验证自己的想法。...Swagger-UI 就是这样一种利器,基于Html+Javascript实现,倾向于在线文档和测试,使用和集成十简单,能容易地生成不同模块下的API列表, 每个API接口描述和参数、请求方法都能定制并直接测试得到直观的响应数据...Swagger-UI访问使用 API首页路径:http://127.0.0.1:8888/swagger-ui.html ?...有了Swagger之后,原本一些接口测试需要Postman这样的调试工具来进行发起,现在直接在页面上就可以进行调试了,是不是很爽?

2.9K40

使用Swagger记录ASP.NET Web API

传统的文档(例如Sandcastle Help File Builder)显然是不能满足我们的要求的,因为它记录的是托管代码,不是更重要的API接口和运行时模型。...幸运的是,有一个工具集很好地支持了Swagger,叫做Swagger Codegen,它可以生成客户端代码来使用API,即生成静态HTML的能力。...然而无奈的是,我找不到.NET可以用于Swagger Codegen的端口,所以我强行做了个尝试:使用Maven和最新的JDK从源代码编译Java二进制文件。...在我的项目中这个URI是:http://localhost:2218/swagger/docs/v1 (swagger.json) [Swagger JSON示例] 转换为静态文档 继续来看Swagger...生成一个直观的静态文档: [一个nice的静态HTML文件,您可以“打印”为PDF,或复制粘贴到Word中] 故障排除 如果你生成的.json产生这样的空对象: “Object”:{ “type”:“

2.2K70

Swagger 上手』

Swagger 就是这么一套简单但功能强大的API 表达工具。本教程就是让读者学会使用这个工具的使用。 1. 思考 让你设计这套API 可视化工具,你会怎么设计?...体很容易出错,如果没有静态格式检查工具,很容易漏掉{} ini 这种形式很简单,但也适用于简单场合,不易处理复杂的嵌套场景 [hostname] 127.0.0.1 [name] xiewei [...server] 10.100.100.100, 10.100.100.101 yaml 这种形式阅读性最好,其次可以对文本内容进行注释,整体的效果最佳,很适用于配置文件。...Swagger使用 离线形式 下载地址: Swagger 浏览器打开 index.html 文件 在线形式 访问地址:在线版本 打开后都存在一个默认的配置文件,左边是配置文件,右边是可视化结果。.../LICENSE-2.0.html" host: "petstore.swagger.io" basePath: "/v2" schemes: - "http" paths: {} 上面的信息不是所有的都是必须的

1.3K70

前后端分离开发,RESTful 接口如何设计

这个过程称为内容协商,这是 HTTP 中未被充分利用的功能之一,可以使用一个类似于上面例子中的 curl 命令来指定: curl –H "Accept:application/json" http://...他们会对创建的资源通过 body 返回200,不是返回 201。这似乎是避免二次请求的一种快捷方式,但是这种做法混合了 POST 和 GET,让缓存资源的潜在影响变得微妙。...POST 动词的另一个主要用途是“追加(Append)”资源信息,即增量编辑或部分更新,不是提交完整的资源。这里应使用 PUT 操作。...这是推荐使用 PATCH 而非 POST 的原因,尽管 POST 可以用于任何事情。IETF 发布了 RFC 文档,定义用于 PATCH 操作的 XML 和 JSON。...网址:http://raml.org 5.2.2 Swagger Swagger 是另一种 YAML/JSON 语言,支持定义2级成熟度的 API

2.5K01

重学Spring系列之Swagger2.0和Swagger3.0

重学Spring系列之Swagger2.0和Swagger3.0 使用Swagger2构建API文档 为什么要发布API接口文档 整合swagger2生成文档 书写swagger注解 生产环境下如何禁用...将API分组分组展示 使用 swagger3 注解代替 swagger2注解 ---- 使用Swagger2构建API文档 为什么要发布API接口文档 当下很多公司都采取前后端分离的开发模式,前端和后端的工作由不同的工程师完成... Swagger 给我们提供了一个全新的维护 API 文档的方式,下面我们就来了解一下它的优点 代码变,文档变。...Open API 3.0规范可以用JSON或YAML编写,并且在记录RESTful API方面做得很好。同时标志着Swagger2成为过去式。...("/hello/**") .build(); } } 显示效果,通过下拉选择分组,查看组内API ---- 使用 swagger3 注解代替 swagger2注解

1.9K10

Spring Boot 2.X(十五):集成 Swagger2 开发 API 文档(在线+离线)

手写 api 文档的话有诸多痛点: 文档更新的时候,需要再次发送给对接人 接口太对,手写文档很难管理 接口返回的结果不明确 不能直接在线测试接口,通常需要使用工具,如 postman 等 Swagger...文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。 官网:https://swagger.io Swagger 使用 1.相关依赖 <!...@Api 用于类,表示标识这个类是swagger的资源。属性如下: tags 表示说明,tags如果有多个值,会生成多个列表 value 表示说明,可以使用tags替代 2....code 响应的HTTP状态代码 message 响应附带的可读消息 10.@ResponseHeader 用于方法,响应头设置。...name 响应头名称 description 头描述 response 默认响应类 void responseContainer 参考ApiOperation中配置 Swagger 导出离线 api 文档

2.3K20

RESTful 架构基础

这个过程称为内容协商,这是 HTTP 中未被充分利用的功能之一,可以使用一个类似于上面例子中的 curl 命令来指定: $ curl –H "Accept:application/json" http:...他们会对创建的资源通过 body 返回200,不是返回201。这似乎是避免二次请求的一种快捷方式,但是这种做法混合了 POST 和 GET,让缓存资源的潜在影响变得微妙。...POST 动词的另一个主要用途是“追加(Append)”资源信息,即增量编辑或部分更新,不是提交完整的资源。这里应使用 PUT 操作。...这是推荐使用 PATCH 而非 POST 的原因,尽管 POST 可以用于任何事情。 IETF 发布了 RFC 文档,定义用于 PATCH 操作的 XML 和 JSON。...网址:http://raml.org 5.2.2 Swagger Swagger 是另一种 YAML/JSON 语言,支持定义2级成熟度的 API

76220

RESTful 架构基础

这个过程称为内容协商,这是 HTTP 中未被充分利用的功能之一,可以使用一个类似于上面例子中的 curl 命令来指定: $ curl –H "Accept:application/json" http...他们会对创建的资源通过 body 返回200,不是返回201。这似乎是避免二次请求的一种快捷方式,但是这种做法混合了 POST 和 GET,让缓存资源的潜在影响变得微妙。...POST 动词的另一个主要用途是“追加(Append)”资源信息,即增量编辑或部分更新,不是提交完整的资源。这里应使用 PUT 操作。...这是推荐使用 PATCH 而非 POST 的原因,尽管 POST 可以用于任何事情。IETF 发布了 RFC 文档,定义用于 PATCH 操作的 XML 和 JSON。...网址:http://raml.org 5.2.2 Swagger Swagger 是另一种 YAML/JSON 语言,支持定义2级成熟度的 API

91830

RestFul架构基础

这个过程称为内容协商,这是 HTTP 中未被充分利用的功能之一,可以使用一个类似于上面例子中的 curl 命令来指定: $ curl –H "Accept:application/json" http:...他们会对创建的资源通过 body 返回200,不是返回201。这似乎是避免二次请求的一种快捷方式,但是这种做法混合了 POST 和 GET,让缓存资源的潜在影响变得微妙。...POST 动词的另一个主要用途是“追加(Append)”资源信息,即增量编辑或部分更新,不是提交完整的资源。这里应使用 PUT 操作。...这是推荐使用 PATCH 而非 POST 的原因,尽管 POST 可以用于任何事情。IETF 发布了 RFC 文档,定义用于 PATCH 操作的 XML 和 JSON。...网址:http://raml.org 5.2.2 Swagger Swagger 是另一种 YAML/JSON 语言,支持定义2级成熟度的 API

60810

使用Swagger生成ASP.NET Web API的文档

传统的文档(例如Sandcastle Help File Builder)显然不可行,因为它记录了托管代码,不是更重要的API接口和运行时的模型。...幸运的是,有一个很赞的工具集Swagger,称为Swagger codegen,它生成客户端代码来使用API,对于我来说 - 生成静态HTML的能力。...打开命令提示符并浏览到以下位置: C:\Tools\swagger-codegen-master\ 要为你的API生成静态HTML文档,请使用以下语法: java -jar modules/swagger-codegen-cli.../target/swagger-codegen-cli.jar generate-i-l html 这会产生一个很好的Web...API静态文档: [图片] 一个不错的静态HTML文件,你可以将它转换成PDF,或复制并粘贴到Word中 故障排除 如果你生成的.json产生这样的空对象: “Object”:{ “type”:“object

3.3K00

OpenAPI规范3-Swagger2 的美化使用

可以支持json和yaml(一般使用yaml)格式的数据类型。如下图: 2、构建 通过生成服务器存根和来自swagger的规范的客户端sdk,构建并启用OAS/Swagger 的可编程语言。...3、Swagger UI Swagger需要在后台配置对于接口的相关信息并使用注解的方式将信息通过Swagger UI进行展示,自动生成了用于视觉交互的OAS规范中描述的所有文档,所以优点在于实时,减少沟通...;缺点也在于使用注解的方式,过深的代码本身交互。...由于swagger默认的UI的样式虽然基于其他方式的API文件已经非常不错了,但是页面任然不是特别的美观。...}/doc.html 需要注意:swagger封装给出的请求地址默认是/v2/api-docs,所以swagger-bootstrap-ui调用后台也是/v2/api-docs,不能带后缀,且需返回json

5.7K20

Spring Boot从零入门6_Swagger2生成生产环境中REST API文档

本文采用的Swagger2就是一个当前流行的通过少量的注解就可以生成漂亮的API文档工具,且在生成的在线文档中提供类似POSTMAN直接调试能力,不仅仅是静态的文档。...2 Swagger2简介 Swagger用于实现 OpenAPI 文档广泛使用的工具,Swagger工具集包括开源工具,免费工具和商业工具的组合,可在API生命周期的不同阶段使用。...3 开始使用 3.1 构建Restful WEB服务 参考《Spring Boot从零入门5_五脏俱全的RESTful Web Service构建》。...构建好后有如下REST API: # 获取所有用户信息 GET http://localhost:8080/api/v1/users # 新增一个用户,参数通过body传递 POST http://localhost...请求参数的获取:@RequestHeader(代码中接收注解) query : 用于get请求的参数拼接。

2.1K20

前后端数据对接的思考及总结

data-json数据,后端响应后执行callback函数达到调用前端业务逻辑的目的,渲染页面 nginx+ajax 这种配合开发方式也是适合前端还没有引入Node等一站式开发解决方案的情况下引入的,纯粹的...接口服务,Api接口最终访问数据库完成数据查询最终返回node层,node渲染响应数据到前端 如果存在会话信息同步等问题,可以使用中间件,例如redis缓存数据库,解决前端node和后端Api信息同步问题...由于许多开发人员不是英文母语人士,因此这些命名约定的目标之一是确保大多数开发人员能够轻松了解API。 它通过鼓励在命名方法和资源时使用简单,一致和小的词汇表来实现。...API使用的名称应该是正确的美国英语。例如,许可证(不是许可证),颜色(不是颜色)。 可以简单地使用常用的简短形式或长字的缩写。例如,API优于应用程序编程接口。 尽可能使用直观,熟悉的术语。...接口文档编写 接口文档编写是前后端对接重要依据,后端写明接口文档,前端根据接口文档对接 文档形势目前主要几种: 1、依赖swagger框架,自动生成接口文档(swagger只能生成基于key-value

3.1K30

sanic异步框架之中文文档

通过上面的叙述,我们是不是可以得出这样一个核心观点:应该在不同的环境下做不同的事 ,以此类推,写项目的时候,我们也需要为每个不同的项目构建一个无干扰的的环境,发散思维,总结一下: 不同的项目,需要为其构建不同的虚拟环境...url构建一个静态文件的URL 模版 html templates编写 编写web服务,自然会涉及到html,sanic自带有html函数,但这并不能满足有些需求,故引入jinja2迫在眉睫。...首先,中间件custombanner将把HTTP响应头服务器更改为假服务器,第二个中间件防止XSS将添加HTTP头来防止跨站点脚本攻击(XSS)攻击。这两个函数是在用户函数返回响应之后调用的。...但是,请注意,该方法不支持使用多进程,并且不是一般运行该应用程序的首选方式。...JWT: JSON Web令牌(JWT)的身份验证扩展。 OpenAPI/Swagger: OpenAPI支持,外加Swagger UI。 Pagination: 简单的分页的支持。

3.5K10
领券