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

咱们常常谈 RESTful Web 服务开发,可是我发现不少人实际就根本不懂这个概念。只是听着你们都这么说,也就跟着一块儿说了,哈哈哈!git

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

REST 相关概念解读

何为 REST?

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

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

有没有感受很难理解?api

不要紧,看了我对 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 插件市场的官网手动下载安装。

简单使用

URL 跳转到对应方法

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

做为HTTP请求工具

这个插件还能够做为一个简单的 http 请求工具来使用。以下图所示。

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

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

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

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

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

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

当咱们选择Convert to JSON的话,你会获得以下 json 类型的数据:

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

后记

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

闲聊

昨晚边看电视边把以前写的一个 RPC 框架给重构了一下。我平时常常会抽时间重构一下以前写的东西,对本身负责也对别人负责。

以前说这个框架帮助不少校招的小伙伴找到了大厂Offer,真的不是我吹牛皮。今年就有不少小伙伴用这个项目当作本身的项目经验。


不过,我在项目中也说了,你想用个人这个项目充当项目经验的话,必定要本身搞懂项目,并对其进行简单的完善。否则的话,真没啥用,就是本身骗本身罢了。

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

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

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

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