1.1.1 → 1.1.2 迁移

预计阅读时间: 2 分钟

1.1.2

Ktor 已经 1.1.2 了!🎉

发布于 2019-01-24

版本升级:

  • Kotlin: 1.3.11 -> 1.3.20
  • Kotlinx IO: 0.1.3 -> 0.1.4
  • Kotlinx Coroutines: 1.1.0 -> 1.1.1
  • Kotlinx Serialization: 0.9.0 -> 0.10.0
  • AtomicFU: 0.12.0 -> 0.12.1

新增:

  • 客户端:
    • 原生 curl 客户端引擎 #479
    • IOS ARM32 目标平台(除了 curl)。
    • CIO client 的 CBC 支持(#623#560#394)。
  • 服务器:
    • 主机名与端口号路由构建器。
    • 用于 digest 认证与 OAuth 的 NonceManager
    • 实验性的 ktor 服务器异常:
      • BadRequestException
      • NotFoundException
      • MissingRequestParameterException
      • ParameterConversionException
      • 支持在 location 中开箱即用(包括 #767
      • 实验性的参数委托支持
    • 路由末端通配符(tailcard)的前缀支持(#876#526
    • ContentType.Text.EventStream,默认情况下不进行压缩

修复:

  • 添加了 iosArm32 目标平台(除了 curl)
  • 修复了 host()port() 函数以遵从代理(#834
  • 修复了影响热更新的类加载问题(#825
  • 修复了 CIO 客户端挂起问题(#800, #806
  • 升级了 JWKS/JWT(#856
  • 修复了服务器 MessageDigest 并发问题
  • 禁止了响应调用后在服务器上设置会话(#864
  • 修复了当已经发送了响应时在 StatusPages 中丢失错误的问题
  • 修复了使用自定义内容类型(content type)模式注册内容转换器的问题(#872
  • 改进了 GSON 错误诊断(#811
  • 修复了 handleWebSocketConversation 挂起问题
  • 修复了 cookie 会话 max-age 值,提升到了 Int.MAX_VALUE#892
  • 修复了 CIO 头解析问题:允许无值的头
  • 修复了客户端 websocket nonce size 问题(#861
  • 修复了客户端 scheme 解析
  • 修复了 CIO 主线程的网络问题(#764
  • 修复了 WebSocketsStatusPages 冲突(#889

破坏性变更:

  • 由于二进制兼容问题,需要将 kotlinx.serialization 从 0.9.0 升级到 0.10.0
  • 几个已启用 API 是错误级的,会在 1.2.0 中删除

已知问题:

  • 对于 threadless 容器还是有问题
  • arm32 目标平台尚未支持 curl