Java RESTful Web Service实战(第2版) 1.8 REST调试工具

简介:

1.8 REST调试工具

在上节中,我们不但领略了REST请求处理流程,还对IDE中设置断点、观察服务器端运行时变量有了了解。本节将讲述如何在客户端对REST服务进行调试。为何需要在客户端调试REST服务呢?因为在REST开发过程中,需要对请求资源地址、资源所支持的数据媒体类型和返回值类型等进行调试和测试。因此,掌握客户端的调试工具是开发优秀的REST服务的前提。下面将介绍这一领域常用的REST请求工具,以使读者更进一步地熟悉REST开发和调试。

1.8.1 命令行调试工具

cURL(http://curl.haxx.se)是非常易用、强大的基于URL标准(RFC 3986)的命令行工具,通过命令行即可完成多种协议(比如HTTP)的请求,并可以将请求的响应信息输出在终端/控制台上,因此对于调试和测试REST请求非常方便。

HTTPie(http://httpie.org)是和cURL非常类似的命令行工具,相比cURL有更良好的用户体验。

命令行工具的优点是简单方便,缺点是没有图形化界面。下面将介绍几款基于浏览器的扩展插件作为REST客户端调试工具的使用情况。

1.8.2 基于浏览器的图形化调试插件

cURL功能强大、易于在自动化脚本中使用,但cURL的每个请求都要通过码字来完成、没有图形界面的特点并不适于所有读者。下面将介绍几种基于浏览器的图形化调试插件,以方便读者在开发和测试REST服务时选择使用。基于Chrome浏览器的REST插件有很多,本节将介绍其中的3种。

1. Simple REST Client插件

Simple REST Client插件是基于Chrome浏览器的扩展,安装该插件后Chrome窗口的右上方会出现该插件的图标,以方便使用。该项目的地址是https://github.com/jeremys/Simple-Rest-Client-Chrome-Extension,插件的下载地址是http://chrome.google.com/extensions/detail/fhjcajmcbmldlhcimfajhfbgofnpcjmb()。Simple REST Client插件的界面如图1-2所示。

 

图1-2 Simple REST Client插件示意图

Simple REST Client插件的特点是简单易用,其界面分为请求信息录入和响应信息展示上下两部分。录入部分包括URL、HTTP请求方法和请求头3部分,见图1-2中上方的数字标识1~3。其中,HTTP请求方法支持HTTP的标准方法GET、POST、PUT、DELETE、HEAD和OPTIONS,Headers部分需要完全手工输入。响应信息部分包括响应状态、响应头和响应实体3部分。其中,Headers部分展示HTTP请求交互的响应头信息,Data中展示的是响应实体信息,语法高亮显示,见图1-2中下方的数字标识4~6。Simple REST Client插件总体上说是麻雀虽小,五脏俱全,但功能相比后面要讲的插件不够强大。

2. Advance REST Client插件

Advance REST Client可以看作是Simple REST Client的增强版。该项目的地址是https://code.google.com/p/chrome-rest-client,插件的下载地址是https://chrome.google.com/webstore/detail/advanced-rest-client/hgmloofddffdnphfgcellkdfbfbjeloo。界面如图1-3所示。

 

图1-3 Advance REST Client插件示意图

Advance REST Client提供更为丰富的功能,除了Simple REST Client插件具备的输入和输出(见图1-3中的数字标识),Advance REST Client还支持带参数的请求和提交表单等更完整的请求功能。数据格式上,支持原生的格式(Raw)、XMl格式的响应(Response)信息。Advance REST Client支持对请求地址的保存和对最近使用地址的记忆,如果调试中需要多次测试同一个资源地址,可以将其保存下来为以后使用;而多个这样的地址也可以按照项目分别保存,方便区分使用。

3. Postman-REST Client插件

Postman-REST Client是基于Simple REST Client源代码编写的专门针对REST的插件。该项目的地址是https://github.com/a85/POSTMan-Chrome-Extension,插件的下载地址是http://www.getpostman.com。界面如图1-4所示。

 

图1-4 Postman-REST Client插件示意图

Postman-REST Client提供的功能更多,除了Advance REST Client具有的输入和输出(见图1-4的数字标识部分),还可以发起基于安全的请求。请求方法不仅包括HTTP的标准方法,还包括WebDAV标准的方法。其响应信息的展示和支持的格式也更丰富。如果读者希望深入和细致地调试REST服务,Postman-REST Client要比其他插件更合适。可以说3个插件的复杂度和功能性是递增的,使用哪一个要看读者的需求。类似的Chrome插件不胜枚举,如果有兴趣,可以通过https://chrome.google.com/webstore/category/extensions访问Chrome的网上商店,搜索更多的Chrome插件。

4. Firefox插件

相对于Chrome浏览器,Firefox的REST插件功能类似,其中常用的插件有REST-Easy和RESTClient。REST-Easy的项目地址是https://github.com/nathan-osman/REST-Easy,RESTClient的项目地址是http://restclient.net。类似的Firefox插件很多,读者如果有兴趣,可以在Firefox浏览器中录入about:addons进入Firefox的扩展,搜索更多的相关插件。

相关文章
|
3月前
|
移动开发 开发者 HTML5
构建响应式Web界面:Flexbox与Grid的实战应用
【10月更文挑战第22天】随着互联网的普及,用户对Web界面的要求越来越高,不仅需要美观,还要具备良好的响应性和兼容性。为了满足这些需求,Web开发者需要掌握一些高级的布局技术。Flexbox和Grid是现代Web布局的两大法宝,它们分别由CSS3和HTML5引入,能够帮助开发者构建出更加灵活和易于维护的响应式Web界面。本文将深入探讨Flexbox和Grid的实战应用,并通过具体实例来展示它们在构建响应式Web界面中的强大能力。
68 3
|
4月前
|
前端开发 JavaScript Python
Python Web应用中的WebSocket实战:前后端分离时代的实时数据交换
在前后端分离的Web应用开发模式中,如何实现前后端之间的实时数据交换成为了一个重要议题。传统的轮询或长轮询方式在实时性、资源消耗和服务器压力方面存在明显不足,而WebSocket技术的出现则为这一问题提供了优雅的解决方案。本文将通过实战案例,详细介绍如何在Python Web应用中运用WebSocket技术,实现前后端之间的实时数据交换。
147 0
|
2月前
|
弹性计算 Java 数据库
Web应用上云经典架构实战
本课程详细介绍了Web应用上云的经典架构实战,涵盖前期准备、配置ALB、创建服务器组和监听、验证ECS公网能力、环境配置(JDK、Maven、Node、Git)、下载并运行若依框架、操作第二台ECS以及验证高可用性。通过具体步骤和命令,帮助学员快速掌握云上部署的全流程。
|
3月前
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
269 45
|
2月前
|
安全 应用服务中间件 网络安全
实战经验分享:利用免费SSL证书构建安全可靠的Web应用
本文分享了利用免费SSL证书构建安全Web应用的实战经验,涵盖选择合适的证书颁发机构、申请与获取证书、配置Web服务器、优化安全性及实际案例。帮助开发者提升应用安全性,增强用户信任。
|
3月前
|
机器学习/深度学习 数据采集 Docker
Docker容器化实战:构建并部署一个简单的Web应用
Docker容器化实战:构建并部署一个简单的Web应用
|
3月前
|
前端开发 API 开发者
Python Web开发者必看!AJAX、Fetch API实战技巧,让前后端交互如丝般顺滑!
在Web开发中,前后端的高效交互是提升用户体验的关键。本文通过一个基于Flask框架的博客系统实战案例,详细介绍了如何使用AJAX和Fetch API实现不刷新页面查看评论的功能。从后端路由设置到前端请求处理,全面展示了这两种技术的应用技巧,帮助Python Web开发者提升项目质量和开发效率。
88 1
|
3月前
|
SQL 负载均衡 安全
安全至上:Web应用防火墙技术深度剖析与实战
【10月更文挑战第29天】在数字化时代,Web应用防火墙(WAF)成为保护Web应用免受攻击的关键技术。本文深入解析WAF的工作原理和核心组件,如Envoy和Coraza,并提供实战指南,涵盖动态加载规则、集成威胁情报、高可用性配置等内容,帮助开发者和安全专家构建更安全的Web环境。
113 1
|
3月前
|
安全 数据库 开发者
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第26天】本文详细介绍了如何在Django框架下进行全栈开发,包括环境安装与配置、创建项目和应用、定义模型类、运行数据库迁移、创建视图和URL映射、编写模板以及启动开发服务器等步骤,并通过示例代码展示了具体实现过程。
112 2
|
3月前
【Azure App Service】PowerShell脚本批量添加IP地址到Web App允许访问IP列表中
Web App取消公网访问后,只允许特定IP能访问Web App。需要写一下段PowerShell脚本,批量添加IP到Web App的允许访问IP列表里!

热门文章

最新文章