Skip to content

v4.1.0

Latest
Compare
Choose a tag to compare
@martinbonnin martinbonnin released this 05 Nov 11:19
· 57 commits to main since this release
f9df2fc

Ktor 3.0.0

Version 4.1.0 updates usages of Ktor from 2.3.11 to 3.0.0:

  • If you are using apollo-runtime-js or apollo-debug-server-jvm, you need to update your app to Ktor 3.0.0+ at the same time as updating to Apollo 4.1.0 (apollo-debug-server-android is unaffected).
  • If you are using the deprecated apollo-mockserver or apollo-ktor-support from this repo, you need to update to the new coordinates.

All other cases are unaffected. In particular, apollo-runtime on Android and iOS uses OkHttp and NsUrlConnection respectively and is not impacted by the Ktor update.

You can read more details in the pull request.

New media type: application/graphql-response+json

application/graphql-response+json is a new media type being introduced by the GraphQL over HTTP draft. It allows differentiating a valid GraphQL response from an error JSON response that could be transmitted by a cache or proxy in the HTTP chain.

If your server uses application/graphql-response+json and returns non-2xx response, Apollo Kotlin will now parse those responses and expose data and errors instead of returning an ApolloHttpException before.

K2 support for the IntelliJ plugin

The IntelliJ plugin is now compatible with K2 (#6150)

👷‍♂️ All changes

  • [all] Update kotlinpoet to 2.0.0 (#6215)
  • [all] Update to Ktor 3 (#6214)
  • [all] Remove apollo-mockserver and apollo-ktor-support (#6215)
  • [all] Remove mockserver as a dependency of apollo-testing-support (#6218)
  • [ast] Do not escape slashes in single quoted strings (#6190)
  • [runtime] Add support for application/graphql-response+json (#6170)
  • [runtime] Do not call experimental webSocket() method re-entrently (#6197)
  • [debug server] Remove Ktor dependency from apollo-debug-server JVM (#6224)
  • [codegen] Do not add internal to private members (#6213)
  • [codegen] Fix name clash in data builder names when two types differ only by their case (#6195)
  • [gradle plugin] Allow null in KSP arguments for Apollo Compiler Plugins (#6200)
  • [gradle plugin] Do not log the full introspection JSON (#6199)
  • [gradle plugin] Deprecate TargetLanguage.KOTLIN_1_5 (#6193)
  • [IJ Plugin] Make the cache viewer understand the blob db format (#6187)
  • [IJ Plugin] Bump IJ Platform Gradle Plugin to 2.0.1 (#6185)
  • [IJ Plugin] Migrate to the K2 compatible Analysis API (#6150)
  • [IJ Plugin] Schedule the GraphQL configuration reload early (#6228)
  • [IJ Plugin] Rename related generated code when renaming an Operation/Fragment (#6227)
  • [IJ Plugin] Only highlight the name of unused operations, rather than the whole operation (#6226)