我正在整合第三方API,並且一步到位地將JSON數據發佈到我們的服務器中。在軌道中執行特定路由的機架中間件
內容類型爲application/json
,但有效負載實際上是經過了gzip壓縮。由於內容類型的原因,rails在嘗試解析數據時拋出了ActionDispatch :: ParamsParser :: ParseError異常。
我打算編寫一個機架中間件來捕捉異常並嘗試解壓縮有效負載,但我只想爲特定操作執行該操作,是否有辦法僅針對特定路由執行中間件?
更新
我已經想過模式匹配的路徑,但最好我想的東西,是一個小更穩健的情況下,路徑在未來改變。
更新
關於壓縮的問題最好通過以下亞光的評論上前,和路由是另外一個問題,這是現在被標記的重複回答。
那豈不是更好地檢查請求的「內容編碼」標頭,並基於此處理壓縮? (假設第三方包括那個頭文件,就去給它們一個(隱喻的)巴掌,如果它們不是的話)。 – matt
可能經過進一步的調查後,這似乎是一個好方法,並且他們發送了「內容編碼」頭文件 – agbodike
@matt我發現這個:https://gist.github.com/relistan/2109707,可以用你的建議的路線 – agbodike