iT邦幫忙

2023 iThome 鐵人賽

DAY 25
0

Day24 - Problem Details

前言

Problem Details是符合RFC 7807的一個實作,作為一個錯誤訊息的返回標準,Spring Boot預設是關閉此項功能的,需要在Application.properties開啟才能使用,今天就來看看吧

專案建立

建立module

https://ithelp.ithome.com.tw/upload/images/20231010/20128084hWGU62U28o.png
https://ithelp.ithome.com.tw/upload/images/20231010/20128084QrGauL5cab.png

Controller

![https://ithelp.ithome.com.tw/upload/images/20231010/20128084n2HqolWcZW.png](https://ithelp.ithome.com.tw/upload/images/20231010/20128084n2HqolWcZW.png)
@RestController
public class HelloController {

    @GetMapping("/hello")
    public String hello(){
        return "Hello";
    }
}

Problem Details

未開啟Problem Details

確認API正常
https://ithelp.ithome.com.tw/upload/images/20231010/20128084vcD7BYN8PT.png
故意打一個post請求造成錯誤發生
https://ithelp.ithome.com.tw/upload/images/20231010/20128084WN0jyCMKun.png
返回的content-type為JSON

開啟Problem Details

調整設定檔配置為true

spring:
  mvc:
    problemdetails:
      enabled: true #預設為false

故意打一個post請求造成錯誤發生,錯誤格式已經符合RFC7807規範了
https://ithelp.ithome.com.tw/upload/images/20231010/20128084Hk8vJpbd7Y.png
返回的content-type已經變成application/problem+json
https://ithelp.ithome.com.tw/upload/images/20231010/20128084bWmaiImUIS.png

Reference


上一篇
Day23 - Switch off the Default MVC Configuration
下一篇
Day25 - Functional Endpoints
系列文
我在 Spring Boot 3 裡面挖呀挖呀挖31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言