Java技術棧 —— 基本規范

Java技術棧 —— 基本規范

  • 一、接口文檔生成工具
  • 二、接口設計
    • 2.1 開發順序
    • 2.2 接口規范
  • 三、數據類封裝

一、接口文檔生成工具

有很多jar包都支持swagger的接口文檔,這樣方便了接口測試,不需要用apifox自己寫接口,直接調用文檔里的swagger接口文檔即可,但是市面上支持swagger的jar包眾多,如何選,哪個好,這是需要比較才知道的。推薦Springdoc。

參考文章或視頻鏈接
[1] Springfox、Swagger 和 Springdoc
[2] 從 SpringFox 遷移到 SpringDoc - 知乎
[3] 前后端分離模式中,swagger VS springdoc,你會用哪個? - 知乎

二、接口設計

2.1 開發順序

順序:增(Create)→ 查(Read)→ 改(Update)→ 刪(Delete)
對應 HTTP 方法:POST → GET → PUT/PATCH → DELETE
邏輯合理性
資源創建優先:用戶通常需要先創建資源(如注冊用戶、新增文章),才能進行后續操作。
生命周期連貫:符合資源從“誕生”到“消亡”的自然流程:創建 → 查看 → 修改 → 刪除。
開發文檔友好:API 文檔中按此順序排列,便于開發者理解接口的完整流程。

# 示例(用戶接口)
POST /users → 新增用戶
GET /users/{id} → 查詢用戶
PUT /users/{id} → 修改用戶
DELETE /users/{id} → 刪除用戶

2.2 接口規范

有兩個接口請求,一個是GET請求,一個是POST請求,那么GET請求不支持請求體,而POST請求支持請求體。
Query Parameters,查詢參數
Path Parameters,路徑參數
Body Parameters,請求體參數,其中又分為Form Data、JSON Payload、XML 參數

參數類型 位置 術語 典型場景
查詢參數 URL 的 ? 后 Query Parameters 過濾、分頁、排序
路徑參數 URL 路徑中 Path Parameters 標識唯一資源(如 /users/{id})
請求體參數 HTTP Body Body Parameters 提交表單、JSON、文件等
表單數據 Body(表單格式) Form Data 傳統表單提交
JSON 數據 Body(JSON格式) JSON Payload/Parameters 現代 API 數據交互

    @GetMapping("/list")public TableDataInfo<YourVo> list(YourBo bo, PageQuery pageQuery) {log.info("列表查詢");return yourService.queryList(bo, pageQuery);}
參考文章或視頻鏈接
[1] SpringBoot controller獲取Get請求的各種方式 - CSDN

三、數據類封裝

數據庫表 ← entity ← [bo] ← 前端

數據庫表 → entity → [vo] → 前端
bo = business object,即業務對象
vo = view object,即可視化對象

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/77695.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/77695.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/77695.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Django ORM 定義模型

提示&#xff1a;定義模型字段的類型 文章目錄 一、字段類型二、字段屬性三、元信息 一、字段類型 常用字段 字段名描述備注AutoFieldint 自增必填參數 primary_keyTrue&#xff0c;無該字段時&#xff0c;django自動創建一個 BigAutoField&#xff0c;一個model不能有兩個Au…

[密碼學基礎]GB與GM國密標準深度解析:定位、差異與協同發展

[密碼學基礎]GB與GM國密標準深度解析&#xff1a;定位、差異與協同發展 導語 在國產密碼技術自主可控的浪潮下&#xff0c;GB&#xff08;國家標準&#xff09;與GM&#xff08;密碼行業標準&#xff09;共同構建了我國商用密碼的技術規范體系。二者在制定主體、法律效力、技術…

Day-1 漏洞攻擊實戰

實訓任務1 漏洞攻擊實戰一 使用 御劍 得到網站后臺地址 數據庫登錄與日志配置?? 使用默認密碼 root:root 登錄phpMyAdmin&#xff0c;執行 SHOW VARIABLES LIKE general% 查看日志狀態。 開啟日志功能&#xff1a;set global general_log "ON";&#xff08;配圖&…

leetcode 2563. 統計公平數對的數目 中等

給你一個下標從 0 開始、長度為 n 的整數數組 nums &#xff0c;和兩個整數 lower 和 upper &#xff0c;返回 公平數對的數目 。 如果 (i, j) 數對滿足以下情況&#xff0c;則認為它是一個 公平數對 &#xff1a; 0 < i < j < n&#xff0c;且lower < nums[i] …

011數論——算法備賽

素數篩 給定n, 求2~n內的所有素數 埃氏篩 利用素數的定義&#xff0c; 輸出素數2&#xff0c;然后篩掉2的倍數&#xff0c;得 {2,3,5,7,9,11,13&#xff0c;…}輸出素數3&#xff0c;然后篩掉3的倍數&#xff0c;得 {2,3,5,7,11,13&#xff0c;…} 繼續上述步驟&#xff0…

算法之貪心算法

貪心算法 貪心算法核心思想常見應用場景典型案例案例一&#xff1a;找零問題案例二&#xff1a;活動選擇問題案例三&#xff1a;貨倉選址問題 貪心算法的應用詳解霍夫曼編碼最小生成樹Dijkstra最短路徑算法 總結 貪心算法 核心思想 貪心算法&#xff08;Greedy Algorithm&…

英碼科技與泊川軟件,攜手加速AI與嵌入式系統融合創新

2025年4月15日&#xff0c;廣州英碼信息科技有限公司&#xff08;以下簡稱“英碼科技”&#xff09;與廣州泊川軟件技術有限公司&#xff08;以下簡稱“泊川軟件”&#xff09; 正式簽署戰略合作框架協議。此次合作將充分發揮雙方在AI計算硬件與嵌入式操作系統領域的技術優勢&a…

Flowable7.x學習筆記(九)部署 BPMN XML 流程

前言 到本篇為止&#xff0c;我們已經完成了流程定義以及其 BPMN XML 本身的查詢和新增功能&#xff0c;那我們有有了XML之后就可以開始著手研究實現 Flowable7對流程的各種操作了&#xff0c;比如部署&#xff0c;掛起&#xff0c;發起等等。 首先第一步&#xff0c;我們本篇文…

electron 渲染進程按鈕創建新window,報BrowserWindow is not a constructor錯誤;

在 Electron 中&#xff0c;有主進程和渲染進程 主進程&#xff1a;在Node.js環境中運行—意味著能夠使用require模塊并使用所有Node.js API 渲染進程&#xff1a;每個electron應用都會為每個打開的BrowserWindow&#xff08;與每個網頁嵌入&#xff09;生成一個單獨的渲染器進…

深入規劃 Elasticsearch 索引:策略與實踐

一、Elasticsearch 索引概述 &#xff08;一&#xff09;索引基本概念 Elasticsearch 是一個分布式、高性能的全文搜索引擎&#xff0c;其核心概念之一便是索引。索引本質上是一個存儲文檔的邏輯容器&#xff0c;它使得數據能夠在高效的檢索機制下被查詢到。當我們對文檔進行…

llamafactory的包安裝

cuda版本12.1&#xff0c;python版本3.10&#xff0c;torch版本2.4.0&#xff0c;幾個關鍵包版本如下&#xff1a; torch2.4.0cu121 transformers4.48.3 triton3.0.0 flash-attn2.7.1.post4 xformers0.0.27.post2 vllm0.6.3.post1 vllm-flash-attn2.6.1 unsloth2025.3.18 unsl…

Redis專題

前言 Redis的各種思想跟機組Cache和操作系統對進程的管理非常類似&#xff01; 一&#xff1a;看到你的簡歷上寫了你的項目里面用到了redis&#xff0c;為啥用redis&#xff1f; 因為傳統的關系型數據庫如Mysql,已經不能適用所有的場景&#xff0c;比如秒殺的庫存扣減&#xff…

【Rust 精進之路之第7篇-函數之道】定義、調用與參數傳遞:構建代碼的基本單元

系列: Rust 精進之路:構建可靠、高效軟件的底層邏輯 作者: 碼覺客 發布日期: 2025-04-20 引言:封裝邏輯,代碼復用的基石 在之前的文章中,我們已經探索了 Rust 如何處理數據(變量、標量類型、復合類型)以及如何控制程序的執行流程(if/else、循環)。這些構成了編寫簡…

文件有幾十個T,需要做rag,用ragFlow能否快速落地呢?

一、RAGFlow的優勢 1、RAGFlow處理大規模數據性能&#xff1a; &#xff08;1&#xff09;、RAGFlow支持分布式索引構建&#xff0c;采用分片技術&#xff0c;能夠處理TB級數據。 &#xff08;2&#xff09;、它結合向量搜索和關鍵詞搜索&#xff0c;提高檢索效率。 &#xf…

安卓的桌面 launcher是什么

安卓的桌面Launcher是一種安卓應用程序&#xff0c;它主要負責管理和展示手機主屏幕的界面以及相關功能&#xff0c;為用戶提供與設備交互的主要入口。以下是其詳細介紹&#xff1a; 功能 主屏幕管理&#xff1a;用戶可以在主屏幕上添加、刪除和排列各種應用程序圖標、小部件…

【學習筆記】計算機網絡(九)—— 無線網絡和移動網絡

第9章 無線網絡和移動網絡 文章目錄 第9章 無線網絡和移動網絡9.1 無線局域網WLAN9.1.1 無線局域網的組成9.1.2 802.11局域網的物理層9.1.3 802.11局域網的MAC層協議CSMA 協議CSMA/CD 協議 - 總線型 - 半雙工CSMA/CA 協議 9.1.4 802.11局域網的MAC幀 9.2 無線個人區域網WPAN9.3…

無線網絡入侵檢測系統實戰 | 基于React+Python的可視化安全平臺開發詳解

隨著無線網絡的普及&#xff0c;網絡攻擊風險也日益嚴峻。本項目旨在構建一個實時監測、智能識別、高效防護的無線網絡安全平臺&#xff0c;通過結合前后端技術與安全算法&#xff0c;實現對常見攻擊行為的有效監控和防御。 一、項目簡介與功能目的 本系統是一款基于 React 前…

速通FlinkCDC3.0

1.FlinkCDC概述 1.1FlinkCDC是什么&#xff1f; FlinkCDC&#xff08;Flink Change Data Capture&#xff09;是一個用于實時捕獲數據庫變更日志的工具&#xff0c;它可以將數據庫的變更實時同步到ApacheFlink系統中。 1.2 FlinkCDC的三個版本&#xff1f; 1.x 這個版本的Fli…

B+樹節點與插入操作

B樹節點與插入操作 設計B樹節點 在設計B樹的數據結構時&#xff0c;我們首先需要定義節點的格式&#xff0c;這將幫助我們理解如何進行插入、刪除以及分裂和合并操作。以下是對B樹節點設計的詳細說明。 節點格式概述 所有的B樹節點大小相同&#xff0c;這是為了后續使用自由…

C# 檢查字符串是否包含在另一個字符串中

string shopList "我是大浪,你的小狼"; this.ShopId"你的小狼"; bool existsShopId false; if (!string.IsNullOrEmpty(shopList)) {existsShopId shopList.Split(,).Any(part > part.Trim() this.ShopId); }檢查 goodsIdSet 中的每個元素是否都在 …