<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
繼續更新
額,昨天還說編輯不著急做,但是我發現如果不做,那麼在做介面傳送功能的時候,我需要反覆新增新的介面來偵錯,那就先做了。
後端要增加2個介面:根據介面ID查詢、更新介面。
@GetMapping("/getApi") public Result getApiById(Long id) { return Result.success(apiDefinitionService.getApi(id)); }
mybatis-plus 有直接使用id查詢的方法可用selectById
:
public ApiDefinition getApi(Long id) { return apiDefinitionDAO.selectById(id); }
這個查詢介面就不在路徑後面拼接引數了,剛好用作我後面功能的偵錯。
ApiDefinitionController 繼續增加編輯請求的處理方法:
@PostMapping("/update") public Result update(@RequestBody ApiDefinition request) { try { apiDefinitionService.update(request); return Result.success(); } catch (Exception e) { return Result.fail(e.toString()); } }
接著在 ApiDefinitionService 裡實現:
public void update(ApiDefinition request) { QueryWrapper<ApiDefinition> wrapper = new QueryWrapper<>(); wrapper.eq("id", request.getId()); request.setUpdateTime(new Date()); apiDefinitionDAO.update(request, wrapper); }
先用傳進來的 id 去查詢出資料,然後更新apiDefinitionDAO.update(request, wrapper)
。
點選介面列表的【編輯】按鈕,開啟對話方塊並且顯示該介面的資料。
在介面列表的【編輯】按鈕上增加一個繫結事件的方法handleApiUpdate
。
還有別忘記新增好要請求的查詢介面,後續這個步驟就不再贅述了。
在handleApiUpdate
方法裡,實現外顯。
但是把介面返回的 request 賦值給頁面的時候發現了問題。因為存在著 3 個tabs,那麼我需要知道後端返回的是屬於其中的哪一種tabs。
決定加個欄位requestType
:引數型別 (0:query, 1: rest,2:body)
。
對應的新增介面的請求引數裡也要增加:
那麼這個欄位的值從哪裡來呢?
發現<el-tabs>
元件裡是有個事件的,當點選tab時候會觸發,那麼就在這個方法裡賦值即可。
接著,我又想到了一個問題:比如我引數放在了請求體的tab中,但是又點了其他tab,最後點選了儲存,那麼這樣落庫的型別就不對了。
為了解決這個問題,我決定加個判斷:儲存的時候,會判斷當前 tab裡的值是否不為空,有值的才可以儲存,沒有的話給提示出來。
新增一個方法checkRequestNull
用於檢查當前 tab 裡的值是不是空:
這裡為什麼用domains[0].key
判斷? 因為預設有個空節點,不填寫的時候資料的長度也是 1,所以我改成了判斷各自的 key。
最後修改saveApi
儲存介面的請求方法,在裡面加入上面的請求引數判斷,注意位置:
測試一下:
繼續開發外顯功能。
接下來還要做一件事:開啟編輯頁後,自動顯示到有資料的 tabs 頁去,比如我是請求體的引數,就自動顯示請求體 tab頁。
這裡有 2 處改動:
先看下面的,就是增加的判斷,根據介面返回的請求引數型別,然後賦值給this.activeName
,就可以顯示對應的 tab再看上面的,是新增了一個欄位id
,用來儲存介面返回的介面id,編輯的時候需要傳給後端介面。
測試一下外顯功能:
首先要修改的是對話方塊儲存按鈕,我需要通過增加一個欄位apiDefinitionDialogStatus
,在點選的時候判斷是呼叫新增介面,還是編輯介面,預設是create
。
這個欄位在點選【編輯】的handleApiUpdate
方法裡就已經使用了,開啟對話方塊,然後賦值為update
:
接著修改對話方塊的儲存按鈕的點選事件,當值等於create
就呼叫saveApi()
,否則就呼叫updateApi()
。
實現updateApi
方法,進行更新的操作。
在此之前,我要需要在請求物件裡增加一個欄位,就是介面 id,因為後端需要用 id 去查詢庫裡的這條資料。
對應的,在請求引數的處理方法裡,也需要增加id
的賦值。
就是把外顯時候拿到的id
賦值到請求引數體裡。
最後,在請求介面之前也需要校驗下當前 tab 下是否有引數,通過了再請求後端更新介面:
測試一下功能:
功能完成,但是還遺漏了一點,少了個重置,不然點選【建立介面】按鈕,;總是會看到上次開啟的內容。
新增一個方法resetApiForm
來重置 form 裡的欄位:
用在點選【建立介面】按鈕的時候,這裡修改一下,之前是改一個對話方塊的狀態,現在都放到一個方法裡去:
在方法裡呼叫:
完成。
以上就是springboot vue介面測試定義編輯功能的實現的詳細內容,更多關於springboot vue介面編輯測試的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45