首頁>技術>

在這次小更新中,我們有一系列的新功能,包括:

新的開發模式

Ktor提供了一系列針對開發的功能,例如自動重灌以及擴充套件的除錯資訊。雖然這兩種功能在開發過程中都很有用,但在生產模式下可能會減慢速度。在1.5.0中,我們引入了一個新的開發模式,透過簡單的配置或標誌來實現這些功能。這也使得在生產模式下切換設定更加容易。

該功能可以在application.conf中使用development=true啟用。

這是一個突破性的變化,因為自動重新載入現在只在這個新模式下啟用。

支援Java HTTP客戶端

Java 11引入了一個基於反應式流的HTTP客戶端。Ktor客戶端

現在,當以JVM為目標時,支援這個功能。

為了使用它,只需向HttpClient傳入Java.HttpClient作為引數。

當然,你確實需要Java 11來實現這個功能。

支援透過HttpRequestBuilder傳送cookie

如果使用HttpRequestBuilder,你現在有一個新的方法,名為Cookie,它允許你輕鬆地傳送Cookie。

支援預壓縮檔案

很多時候你想傳送已經壓縮過的檔案,避免Ktor試圖進一步壓縮內容。有了preCompressed功能

你現在可以很容易地做到這一點。

感謝我們的社群貢獻者guicamest的貢獻。

CORS中對自定義標頭檔案的支援

我們現在支援允許在CORS請求中使用自定義標題。雖然通常不建議在請求中允許任何頭,但你可以用Ktor指定某些遵循特定模式的自定義頭。

感謝Joze的貢獻。

實驗性的WebSocket和Deflate擴充套件

我們引入了對 WebSocket 和 deflate 擴充套件的支援。這提供了RFC-7692的實現。

要使用它,請安裝該功能

並簡單地用兩個新方法之一引用它:extension和extensionOrNull。

需要注意的是,這是一個實驗性的API,我們很希望得到一些反饋。

支援伺服器會話中的密封和巢狀類。

現在,你可以在你的伺服器會話物件中擁有密封/巢狀類。

OkHttp WebSocket建立覆蓋

您現在可以提供一個OkHttp WebSocket.Factory,它將在建立websocket時被考慮在內,讓您在使用OkHttp時更加靈活。感謝Chris的貢獻。

適當的異常處理

Ktor現在可以正確處理意外的異常。如果在管道線中發生了異常,它將被傳播到主機上,並以500內部伺服器錯誤和實際異常物件的形式返回。這使得應用程式本身能夠更好地處理異常,並且不再需要為特定的狀態程式碼配置狀態頁面。

除了上述功能外,1.5.0還帶來了其他功能和bug修復。

新檔案

我們2020-2021年的路線圖中,有一項是改善入職體驗,當然包括更好的文件。特別是我們重新編寫了很多內容,並將其結構化得更好。我們現在已經完全完成了大概一半的內容,可以供你消費和反饋。請注意,仍然有一些舊的條目,而且隨著我們推送新的內容,其中一些內容將被刪除(並設定重定向)。

鳴謝

除了上述的貢獻,我們還要感謝所有對Ktor的貢獻者,無論是程式碼貢獻,還是反饋和報告問題。

下載安裝

像往常一樣,你可以在Maven Central上獲取位,或者使用Package Search直接在你的專案中搜索/管理Ktor的依賴關係。

我們希望你喜歡這個版本,並在2021年與你見面,有更多的內容。

節日快樂!

11
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • Redis5.0:簡單的叢集模式——主從模式詳解