RESTFul服务开发必备的一款IDEA插件!用了就离不开了

我们经常谈 RESTful Web 服务开发,但是我发现很多人实际就根本不懂这个概念。只是听着大家都这么说,也就跟着一起说了,哈哈哈!

因此,在开始推荐这个IDEA插件之前,非常有必要花一小会时间简单聊聊 REST 相关的概念。这是一个看似高大上,实际上很容易理解的概念。

REST 相关概念解读

何为 REST?

REST 即 REpresentational State Transfer 的缩写。这个词组的翻译过来就是"表现层状态转化"。

这样理解起来甚是晦涩,实际上 REST 的全称是 Resource Representational State Transfer ,直白地翻译过来就是 “资源”在网络传输中以某种“表现形式”进行“状态转移”

有没有感觉很难理解?

没关系,看了我对 REST 涉及到的一些概念的解读之后你没准就能理解了!

  • 资源(Resource) :我们可以把真实的对象数据称为资源。一个资源既可以是一个集合,也可以是单个个体。比如我们的班级 classes 是代表一个集合形式的资源,而特定的 class 代表单个个体资源。每一种资源都有特定的 URI(统一资源定位符)与之对应,如果我们需要获取这个资源,访问这个 URI 就可以了,比如获取特定的班级:/class/12。另外,资源也可以包含子资源,比如 /classes/classId/teachers:列出某个指定班级的所有老师的信息
  • 表现形式(Representational):"资源"是一种信息实体,它可以有多种外在表现形式。我们把"资源"具体呈现出来的形式比如 json,xml,image,txt 等等叫做它的"表现层/表现形式"。
  • 状态转移(State Transfer) :大家第一眼看到这个词语一定会很懵逼?内心 BB:这尼玛是啥啊? 大白话来说 REST 中的状态转移更多地描述的服务器端资源的状态,比如你通过增删改查(通过 HTTP 动词实现)引起资源状态的改变。 (HTTP 协议是一个无状态的,所有的资源状态都保存在服务器端)

何为 RESTful 架构?

满足 REST 风格的架构设计就可以称为RESTful 架构:

  1. 每一个 URI 代表一种资源;
  2. 客户端和服务器之间,传递这种资源的某种表现形式比如 json,xml,image,txt 等等;
  3. 客户端通过特定的 HTTP 动词,对服务器端资源进行操作,实现"表现层状态转化"。

何为 RESTful Web服务?

基于 REST 架构的 Web 服务就被称为 RESTful Web 服务。

RESTful Web服务辅助开发工具

安装

这个插件的名字叫做 “RestfulToolkit” 。我们直接在 IDEA 的插件市场即可找到这个插件。如下图所示。

如果你因为网络问题没办法使用 IDEA 自带的插件市场的话,也可以通过 IDEA 插件市场的官网手动下载安装。

RESTFul服务开发必备的一款IDEA插件!用了就离不开了_第1张图片

简单使用

URL 跳转到对应方法

根据 URL 直接跳转到对应的方法定义 (Windows: ctrl+\\ or ctrl+alt+n Mac:command+\\ or command+alt+n )并且提供了一个服务的树形可视化显示窗口。 如下图所示。

RESTFul服务开发必备的一款IDEA插件!用了就离不开了_第2张图片

作为HTTP请求工具

这个插件还可以作为一个简单的 http 请求工具来使用。如下图所示。
RESTFul服务开发必备的一款IDEA插件!用了就离不开了_第3张图片

复制生成 URL、复制方法参数...

这个插件还提供了生成 URL、查询参数、请求体(RequestBody)等功能。

举个例子。我们选中 Controller 中的某个请求对应的方法右击,你会发现多了几个可选项。当你选择Generate & Copy Full URL的话,就可以把整个请求的路径直接复制下来。eg:http://localhost:9333/api/users?pageNum=1&pageSize=1

RESTFul服务开发必备的一款IDEA插件!用了就离不开了_第4张图片

将Java类转换为对应的JSON格式

这个插件还为 Java 类上添加了 Convert to JSON 功能 。

我们选中的某个类对应的方法然后右击,你会发现多了几个可选项。

RESTFul服务开发必备的一款IDEA插件!用了就离不开了_第5张图片

当我们选择Convert to JSON的话,你会得到如下 json 类型的数据:

{
  "username": "demoData",
  "password": "demoData",
  "rememberMe": true
}

后记

刚刚有小伙伴指出 2020 版本之后的 IDEA 已经无法正常使用这个插件了。不过,网上有人开发了一个替代品 RestfulTool

闲聊

昨晚边看电视边把之前写的一个 RPC 框架给重构了一下。我平时经常会抽时间重构一下之前写的东西,对自己负责也对别人负责。
RESTFul服务开发必备的一款IDEA插件!用了就离不开了_第6张图片
之前说这个框架帮助很多校招的小伙伴找到了大厂Offer,真的不是我吹牛皮。今年就有很多小伙伴用这个项目当做自己的项目经验。

RESTFul服务开发必备的一款IDEA插件!用了就离不开了_第7张图片
不过,我在项目中也说了,你想用我的这个项目充当项目经验的话,一定要自己搞懂项目,并对其进行简单的完善。不然的话,真没啥用,就是自己骗自己罢了。

说实话,这个项目今年还很好用,毕竟用的人很少。明年的话,应该也还好。重要的是自己搞懂其中的思想并进行完善。

项目地址:https://github.com/Snailclimb/guide-rpc-framework

图解计算机基础+个人原创的 Java 面试手册PDF版。

微信搜“JavaGuide”回复“计算机基础”即可获取图解计算机基础+个人原创的 Java 面试手册。

你可能感兴趣的