<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
開發繼續更新
上節畫了大概的前端頁面,今天主要來實現後端介面,然後調通前後端實現介面新增功能。先預覽下效果:
老規矩,分為前後端講解。
在 ApiDefinitionController 類中新增一個處理方法,處理介面的新增請求:
@PostMapping("/add") public Result add(@RequestBody ApiDefinition request) { try { apiDefinitionService.add(request); return Result.success(); } catch (Exception e) { return Result.fail(e.toString()); } }
對應的在 service 層實現 add 方法:
public void add(ApiDefinition request) { if (StringUtils.isEmpty(request.getProjectId().toString())) { BtException.throwException("專案id為空"); } if (StringUtils.isEmpty(request.getModuleId().toString())) { BtException.throwException("模組id為空"); } if (StringUtils.isEmpty(request.getName())) { BtException.throwException("介面名稱為空"); } request.setCreateTime(new Date()); request.setUpdateTime(new Date()); apiDefinitionDAO.insert(request); }
儲存的實現不難,這裡面加了幾個重要引數的為空判斷。
在上節畫的頁面當中,還留有 rest引數和請求體這 2 個 tabs沒畫,先補全。
這裡主要是針對 restful 風格介面的請求,比如/bloomtest/project/list/1/10
,這時候後面的1 和 10,就要在引數裡設定變數去取了。
形式還是跟前面的 請求頭 和 query引數一樣的:
對應的增加這個欄位:
關於這裡面的 key,是元件裡需要的,我試過去掉,但是會有問題。暫時先留著,存進來目前不影響我後續的操作。
這個請求體內容,目前只考慮一般都情況,需要對其進行 json 格式化展示。我依然在 github 上找現成的元件,結果找到了一個vue-json-editor
。
這個元件是支援編輯的,我上節裡使用在返回展示的不可以編輯。
npm install vue-json-editor --save
安裝好之後,在vue檔案中匯入使用。
這個元件裡同樣也是支援一些功能的,不過我只需要能格式化即可,作者程式碼裡有一段 demo。
在我的程式碼裡使用也很簡單,直接找到要放這個輸入框的地方,把程式碼copy進去修改。
v-model 雙向繫結的欄位:mode="'code'",則是預設顯示的模式,如下
功能雖然有了,但是樣式和顏色我不太喜歡,我試圖去修改原始碼想調整下,但是不行,暫時先這樣,以後再說。
因為我整張頁面裡分了好多個不同的 form 表單,所以我現在要有個地方處理一下,蒐集這些表單的內容,放在一個地方,用於最後的介面請求。
新增一個方法 handleSaveRequest ,給裡面的欄位賦值:
注意,在方法裡有個判斷。就是在這 3 個 tabs 中,我點選的哪一個,就會把其中新增的內容賦值給this.saveApiRequest.request:
另外,還要注意的是,對於 apiHeader、request、response,還需要使用JSON.stringify()將其轉為 Json 字串,方便後端儲存。
首先還是要在 apiDefinition.js 新增這個介面:
接著就是匯入:
最後實現新增介面的方法saveApi
,當然了,在【儲存】按鈕上的@click="saveApi"
點選事件不能少了。
在這個saveApi
方法裡,要做這麼幾件事:
先呼叫方法handleSaveRequest
,給請求引數賦值請求介面,並提示結果關閉新增的對話方塊重新整理列表
這樣介面的新增功能就實現了,不過這裡模組的地方暫時預設寫死了個0,儲存的介面先存放在頂級節點下,後續這裡還需要實現一個選擇樹,用來繫結具體模組。
編輯的功能先不急,接下來先實現傳送請求的功能,方便偵錯介面。預計工作量都在後端,剛好到週末了,可以集中開發一下,更多關於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