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 面試手冊。

相關文章
相關標籤/搜索