簡體   English   中英

休息端點異常處理

[英]Rest Endpoint Exception Handling

下面是我的休息端點。 我使用 Long 作為userId 的數據類型,它在通過如下所示的郵遞員調用端點時工作正常,並且我能夠顯式處理異常。

本地主機:8080/order-service/save-order/1

但是當我用字符串類型參數這樣調用時,

本地主機:8080/order-service/save-order/abc

spring boot 隱式處理異常並給出 400 個錯誤請求。

我想要的是在參數的變量類型不等於 long 時拋出自定義錯誤消息,例如“請發送正確的 userId”。

@PostMapping(path = "/save-order/{userId}")
    @ResponseBody
    public ResponseEntity<ExceptionResponse> addOrder(@Valid @RequestBody 
         OrderDTO orderDto, @Valid @PathVariable(name = "userId") Long userId) throws BatchException, UserExceptions, BatchIdException, InvalidDateFormatException, DeliveryIdException,BatchMerchantException {
        return ResponseEntity.ok(new ExceptionResponse("Order Saved", 201, orderServiceImpl.saveOrder(orderDto, userId)));
    }

您可以實現自己的自定義驗證器,請參見此處: https : //www.baeldung.com/spring-mvc-custom-validator

如果輸入合適,則返回 true,如果不合適,則返回 false,您還可以在那里定義要在用戶輸入錯誤輸入時向用戶顯示的消息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM