知識庫 / Series RSS 訂閱

Spring 框架下 RESTful 架構系列

REST,Series,Spring
HongKong
7
04:10 AM · Dec 06 ,2025
<section class="series-text">
 <p><strong>構建 REST API 並非易事</strong> – 從高級的 RESTful 約束到將所有內容都構建起來並使其良好運行的細節。</p>
 <p>Spring 將 REST 提升為一等公民,並且該平台在不斷成熟。</p>
 <p>通過本指南,我的目標是整理關於該主題的大量信息,並指導您正確構建 API。</p>
 <p>本指南從 <strong >基礎知識</strong>開始 – 構建 REST API、基本用法和註解。</p>
 <p>然後,它深入探討了 REST 的更 <strong >高級領域</strong> – 例如錯誤處理、分頁、測試和文檔化 API。</p>
 <p>最後,它探討了如何使用不同的 <strong >Spring REST 客户端</strong>,包括 <em >RestClient</em>、<em >RestTemplate</em> 和 <em >WebClient</em>。</p>
</section>
<section class="series-category baeldung_series_block">
 <div>
  <img src="/file/story/attachments/image/l/5ca3ef26-0136-42ab-968f-3c5c7f96e209">
 </div>
</section>

先決條件

  • 啓動 Web 應用程序
<section>
  <h2>REST API Basics</h2>
</section>
<section class="baeldung_series_block">
  <div>
    <img src="/file/story/attachments/image/l/be37c829-9113-40fd-8628-9eafdb844e23">
    構建 REST API (流行)
  </div>
  <div>
    <img src="/file/story/attachments/image/l/a12f39fd-a8b6-4492-b057-6e227fb50dcd">
    使用 Spring ResponseEntity 操縱 HTTP 響應 (流行)
  </div>
  <div>
    <img src="/file/story/attachments/image/l/8a0bcbde-e01f-4e76-a3b1-8d75fff6fc60">
    如何在 Spring REST 控制器中讀取 HTTP 標頭 (流行)
  </div>
  <div>
    <img src="/file/story/attachments/image/l/ec310e36-206c-43cc-80aa-9b877391f4c8">
    實體到 DTO 轉換用於 Spring REST API (流行)
  </div>
  <div>
    <img src="/file/story/attachments/image/l/d701eecd-e918-42dc-906b-e1272d63a4eb">
    REST 的錯誤處理 (流行)
  </div>
  <div>
    <img src="/file/story/attachments/image/l/365ba363-fc77-42f3-b686-f2ea7331a945">
    REST API 中的 HTTP PUT 與 POST
  </div>
  <div>
    <img src="/file/story/attachments/image/l/4d046243-d6b5-4d47-b52e-6dde6b5604ea">
    REST API 的自定義錯誤消息處理 (流行)
  </div>
</section>
<section>
  <h2>REST API 註解</h2>
</section>
<section class="baeldung_series_block">
  <div>
    <img src="/file/story/attachments/image/l/a465542b-3dc9-4ca6-90d7-c7a526942adb">
    <span>Spring @Controller 和 @RestController 註解</span>
  </div>
  <div >
    <img src="/file/story/attachments/image/l/faec618f-9060-49ce-9f6b-fd884be6a245">
    <span>Spring @RequestBody 和 @ResponseBody 註解</span>
  </div>
  <div >
    <img src="/file/story/attachments/image/l/833baa9b-49d9-4c90-b014-3c372d7d599d">
    <span>Spring @PathVariable 註解</span>
  </div>
  <div >
    <img src="/file/story/attachments/image/l/62afa8c5-7cd9-4037-bfb2-61cc9ab4b91d">
    <span>Spring @RequestParam 註解</span>
  </div>
  <div >
    <img src="/file/story/attachments/image/l/e2cb8b3c-db8d-4e43-a6fe-f025d83bcaaa">
    <span>Spring @RequestMapping 註解</span>
  </div>
  <div >
    <img src="/file/story/attachments/image/l/456fc8e8-77b2-4c7c-96fe-eaddc5895b58">
    <span>Spring @ResponseStatus 註解</span>
  </div>
</section>
<section>
 <div class="series-category baeldung_series_block">
  <div>
   <img src="/file/story/attachments/image/l/d482d799-701e-42f9-837e-9592461c1103">
   <h2>REST API 文檔化和版本控制</h2>
  </div>
  <ul id="api-documentation-list">
   <li>
    <img src="/file/story/attachments/image/l/8f7ac4ce-4315-4d1e-a429-4c84f63e6335">
    <span>設置 Swagger 2 與 Spring REST API 的集成 <span>(熱門)</span></span>
   </li>
   <li>
    <img src="/file/story/attachments/image/l/32ac2794-87e0-4f3c-8d27-d8e27837011f">
    <span>使用 OpenAPI 3.0 文檔化 Spring REST API <span>(熱門)</span></span>
   </li>
   <li>
    <img src="/file/story/attachments/image/l/f784b0cd-6fc8-4ca2-8662-546fdb18b98c">
    <span>Swagger @Parameter vs @Schema <span>(熱門)</span></span>
   </li>
   <li>
    <img src="/file/story/attachments/image/l/55dba6c3-e470-429d-9ebe-89b724e802f2">
    <span>使用 Swagger 生成 Spring Boot REST 客户端 <span>(熱門)</span></span>
   </li>
   <li>
    <img src="/file/story/attachments/image/l/2d8128bf-d446-4f5b-bbfc-dc26ebff208d">
    <span>REST API 版本控制</span>
   </li>
   <li>
    <img src="/file/story/attachments/image/l/d451cddb-f31c-4139-85e3-62567cecb497">
    <span>@Operation vs @ApiResponse in Swagger <span>(熱門)</span></span>
   </li>
   <li>
    <img src="/file/story/attachments/image/l/b75f2b3a-84f8-441b-b56c-858ca073b111">
    <span>使用 Swagger 設置示例和描述 <span>(熱門)</span></span>
   </li>
  </ul>
</section>
<section>
  <h2>REST API 高級主題</h2>
</section>
<section class="baeldung_series_block">
  <div>
    <img src="/file/story/attachments/image/l/fc1eedc8-e668-43ba-bb41-4da483139c75">
    <ul>
      <li><img src="/file/story/attachments/image/l/c4eeb2d7-c0b1-4e8e-aa87-02bd77db7e81"> REST 分頁 (流行)</li>
      <li><img src="/file/story/attachments/image/l/45d9c565-0ec9-4660-be5b-35d870ca67ed"> 為 Spring REST API 設置請求超時 (流行)</li>
      <li><img src="/file/story/attachments/image/l/9c7c46a5-428c-4590-9f3e-94185d535e25"> Spring REST API 錯誤處理的最佳實踐 (流行)</li>
      <li><img src="/file/story/attachments/image/l/75d81602-a488-4d6f-babc-cb9ee3f45c37"> Spring Boot 獲取所有端點</li>
      <li><img src="/file/story/attachments/image/l/2cacc7f9-f1c8-4e28-bf4b-eb3fc2f4d7ad"> 使用 CompletableFuture 發送多個 REST 請求</li>
      <li><img src="/file/story/attachments/image/l/a02b37df-dca9-4cf2-b9a7-8b1b83319460"> 避免對服務層進行脆弱的測試</li>
    </ul>
  </div>
</section>
<section>
 <div class="series-category baeldung_series_block">
  <div>
   <img src="/file/story/attachments/image/l/be36f8ef-03ef-4d32-8a77-769f60f16ccf">
   <h2>REST API 測試</h2>
   <ul>
    <li><img src="/file/story/attachments/image/l/7f1e0073-3861-4146-a508-daf96ae6076e"> <span > 使用 Java 測試 REST API</span></li>
    <li><img src="/file/story/attachments/image/l/5b77f688-02d2-46b7-bec2-07d33fb7c2b0"> <span > 使用 Spring MockMvc 測試異常</span></li>
    <li><img src="/file/story/attachments/image/l/e936a104-37b0-4684-95c8-627e1b082b7f"> <span > 使用 Cucumber 進行 REST API 測試</span></li>
    <li><img src="/file/story/attachments/image/l/8b1ba036-2488-42b4-b36a-9fd7d436dd2e"> <span > WireMock 簡介 (流行)</span></li>
    <li><img src="/file/story/attachments/image/l/56129a5b-f8a8-42b9-9b5c-1b4e62e432b2"> <span > REST-assured 指南 (流行)</span></li>
    <li><img src="/file/story/attachments/image/l/1caa9a18-65f3-42f2-aee4-4b980a986474"> <span > 使用 REST-assured 獲取和驗證響應數據</span></li>
    <li><img src="/file/story/attachments/image/l/15fa1050-a26a-4429-9a38-0d06e4ead4bb"> <span > 使用 curl 測試 REST API (流行)</span></li>
   </ul>
  </div>
 </div >
</section>
<section>
  <h2>RestTemplate</h2>
  <div>
    <ul id="rest-template-list">
      <li><img src="/file/story/attachments/image/l/0c14a641-7642-4a0a-b730-b7b099e069df"> <span data-translate="The Guide to RestTemplate">(popular)</span></li>
      <li><img src="/file/story/attachments/image/l/536e05ca-2489-466a-8583-4bb44b43953c"> <span data-translate="A Guide to RestClient in Spring Boot">(popular)</span></li>
      <li><img src="/file/story/attachments/image/l/467b71b7-6e33-436c-8ace-f98a21e136c0"> <span data-translate="RestTemplate Post Request with JSON">(popular)</span></li>
      <li><img src="/file/story/attachments/image/l/f18653c8-2a8a-409d-8a3d-a1ec8acd0b64"> <span data-translate="Get and Post Lists of Objects with RestTemplate</span></li>
      <li><img src="/file/story/attachments/image/l/9e8542ad-2da2-4399-977b-d2545fc9ce98"> <span data-translate="Spring RestTemplate Error Handling">(popular)</span></li>
      <li><img src="/file/story/attachments/image/l/0d6bcaa1-0fa9-4e88-9c95-0d7ae2861fca"> <span data-translate="Uploading MultipartFile with Spring RestTemplate</span></li>
      <li><img src="/file/story/attachments/image/l/019d8ccb-9e5a-4797-a052-80ebaec261f8"> <span data-translate="RestTemplate with Basic Authentication</span></li>
      <li><img src="/file/story/attachments/image/l/187eb365-1de7-43b2-9594-aa5ce3b4b92e"> <span data-translate="Configure a RestTemplate with RestTemplateBuilder">(popular)</span></li>
      <li><img src="/file/story/attachments/image/l/40d07e31-6a24-47a1-97f4-b06f89b6d8c7"> <span data-translate="Spring RestTemplate Request/Response Logging</span></li>
      <li><img src="/file/story/attachments/image/l/cfba03b5-7446-4a59-bba0-bc0c5ecb71e0"> <span data-translate="Access HTTPS REST Service Using Spring RestTemplate">(popular)</span></li>
    </ul>
  </div>
</section>
<section>
  <h2>WebClient</h2>
</section>
<section class="baeldung_series_block">
  <div>
    <img src="/file/story/attachments/image/l/20498be4-645b-4314-b52f-c9d7a8d56f56">
    <ul id="webclient-list">
      <li data-popular="true">
        <img src="/file/story/attachments/image/l/d2fc1f31-2a57-4beb-aca9-97541cf52987">
        <span>Spring WebClient</span><span>(popular)</span>
      </li>
      <li data-popular="true">
        <img src="/file/story/attachments/image/l/bdebdabd-8015-4be0-8d9e-48f05cd56b92">
        <span>Spring WebClient Requests with Parameters</span><span>(popular)</span>
      </li>
      <li data-popular="true">
        <img src="/file/story/attachments/image/l/80040cd6-2e77-4e9e-b8e7-5cf73efcfec5">
        <span>Spring WebClient Filters</span>
      </li>
      <li data-popular="true">
        <img src="/file/story/attachments/image/l/6810d09d-ed19-4f7d-851c-e508aae1b323">
        <span>Get List of JSON Objects with WebClient</span>
      </li>
      <li data-popular="true">
        <img src="/file/story/attachments/image/l/f73e3d36-8387-4885-a4e9-82ac94c7c1ac">
        <span>Spring WebClient and OAuth2 Support</span><span>(popular)</span>
      </li>
      <li data-popular="true">
        <img src="/file/story/attachments/image/l/90fd06ab-6f58-45ce-bb0b-c98b59869c11">
        <span>Simultaneous Spring WebClient Calls</span>
      </li>
      <li data-popular="true">
        <img src="/file/story/attachments/image/l/e22d1df0-a768-40bc-9473-4d875c40ee3d">
        <span>Spring WebClient vs. RestTemplate</span><span>(popular)</span>
      </li>
    </ul>
  </div>
</section>

其他 Spring 教程

  • Spring Boot 教程 (流行) (系列) “學習 Spring Boot 並瞭解如何自定義 Spring Boot 應用程序”
  • Spring Persistence 教程 (流行) (系列) “學習如何使用 Spring Data JPA 和其他 Spring 持久性技術”
  • Spring Security OAuth2 指南 (流行) (系列) “學習如何使用 Spring OAuth2 支持安全 REST API”
user avatar
0 位用戶收藏了這個故事!
收藏

發佈 評論

Some HTML is okay.