Web-Framework: Ktor 1.3 liefert HttpStatement und bessere JSON-integration

Die neue Version von Ktor bietet zwar nur wenige Änderungen, allerdings müssen Entwickler ihre Applikationen dank einiger Breaking Changes anpassen.

vorlesen Druckansicht
Web-Framework: Ktor 1.3 liefert HttpStatement und bessere JSON-integration

(Bild: deepadesigns/Shutterstock.com)

Lesezeit: 2 Min.
Von
  • Björn Bohn

Der Toolhersteller JetBrains hat Version 1.3 von Ktor veröffentlicht, einem Framework zur Entwicklung asynchroner Client- und Serveranwendungen. Das Release führt eine neue HttpStatement-Klasse ein, da HttpResponse künftig nicht mehr das Closeable-Interface automatisch implementiert. Das wird als "Breaking Change" bezeichnet, Ktor 1.3 ist also nicht rückwärtskompatibel. Darüber hinaus hat JetBrains das Zusammenspiel mit JSON auf Client- und Serverseite überarbeitet. Ziel für die nächsten Releases soll es sein, die auf der JVM laufende Serverseite auch Multiplattform-fähig zu machen.

Bislang mussten Entwickler den HttpResponse-Befehl ausdrücklich schließen. Das führte häufig zu Problemen, da Nutzer es gerne vergessen haben – eine schlechte Performance war die Folge. Nun implementiert HttpResponse das Closeable-Interface nicht mehr. Wer Streaming oder große Antworten in seinen Applikationen erwartet, muss künftig auf die neue HttpStatement-Klasse setzen.

DarĂĽber hinaus bietet der HTTP-Client einen experimentellen Support fĂĽr eine Proxy-Konfiguration. Allerdings ist diese Neuerung nur fĂĽr die JVM und native Zielplattformen verfĂĽgbar, nicht aber fĂĽr JavaScript. Um eine Proxy zu konfigurieren, mĂĽssen Entwickler folgenden Quellcode nutzen:

HttpClient { 
engine {
proxy = ProxyBuilder.http("http://proxy-host:3128")
}
}

In puncto JSON können Entwickler jetzt mit JsonFeature Collection-Typen ohne zusätzliche Konfiguration handhaben. Dadurch gelten die Funktionen setMapper, setListMapper und register nun als veraltet. Außerdem können Anwender mit der kotlinx.serialization-DSL (Domain-specific Language) einen JSON-Body konstruieren.

Einen detaillierten Überblick über die Neuerungen bietet JetBrains in einem Blogbeitrag. Wer von älteren Versionen auf 1.3 umsteigt, muss vor allem die close-Aufrufe von HttpResponse beseitigen. (bbo)