自定義 ocelot 中介軟體輸出自定義錯誤資訊

2021-10-21 14:06:33 字數 1395 閱讀 6896

ocelot 中預設的 response 中介軟體在出錯的時候只會設定 statuscode 沒有具體的資訊,想要展示自己定義的錯誤資訊的時候就需要做一些自定義了,對 ocelot 中的 response 中介軟體做了一些小改動,實現了輸出自定義錯誤資訊的功能。

實現起來其實也很簡單,原來的有錯誤的時候,只設定了 response 的 statuscode,我們只需要加一下輸出錯誤資訊就可以了,錯誤資訊的格式完全可以自定義,實現**如下:

相比之前的中介軟體,主要變化就是對於 error 的處理,感覺這裡 ocelot 可以抽象一下,增加乙個介面errorresponser之類的,現在的 responder 沒有直接把錯誤資訊直接傳進去造成一些不變,加乙個errorresponder只處理 error 相關的邏輯,把錯誤資訊直接傳進去,這樣使用者也就可以更為靈活的註冊自己的服務來無侵入的修改發生錯誤時的行為

要使用這個中介軟體,就要自己定義 ocelot 中介軟體的配置,把預設的 response 中介軟體替換成自己的中介軟體即可,示例如下:

除了上面的 response 中介軟體,為了測試方便,我還加了乙個中介軟體,直接設定了乙個 error 來方便測試,隨便訪問乙個 path 來測試一下是不是會有錯誤資訊,可以看到正如預期的結果一樣,輸出了我們自定義的錯誤資訊

完整示例可以從 github 上獲取

自定義中介軟體

建立乙個mymiddleware.pydef middleware get response 中介軟體工廠,生成乙個中介軟體 get response 此處編寫的 僅在django第一次配置和初始化的時候執行一次。print 1,初始化中介軟體了.def middleware request 此處編...

laravel 自定義中介軟體

關於中介軟體的理解 最好將中介軟體想象為一系列的 層 http 請求必須經過它們才會觸發您的應用程式。每一層都可以檢測接收的請求,甚至可以完全拒絕請求訪問您的應用。1.建立中介軟體php artisan make middleware checkage 3.為路由指定中介軟體 route get f...

scrapy中介軟體自定義

二 定義動態proxy中介軟體 在middlewares.py檔案中,編寫useragentmiddlerware中介軟體,可以隨機動態設定user agent from fake useragent import useragent 自定義動態user agent中介軟體 class userag...