Skip to content

Releases: spring-projects/spring-graphql

v1.0.2

20 Sep 13:26
Compare
Choose a tag to compare

⭐ New Features

  • Support @Arguments with Map #493
  • Fix NPE when GraphQL argument is a list with a null element #486
  • Support controller method parameter annotations on an interface #480
  • Controller's with CompletableFuture return bad error messages or no error at all #479
  • Support path variables for redirect to GraphiQL path #478
  • Allow custom scalar, parsed to different types, to bind onto java.lang.Object #447
  • Introspect controller methods on startup to determine if they need validation #445
  • Do not ignore a DataFetcher with a DataFetcherFactories wrapper #440

πŸͺ² Bug Fixes

  • Target collection type is not used in argument binding #485
  • Java classes with Optional constructor args for GraphQL input types fail with InaccessibleObjectException #470

πŸ“” Documentation

  • Improve reference docs on how to find schema files acorss multiple modules #489
  • Document how to customize global, request validation errors that prevent execution #487

πŸ”¨ Dependency Upgrades

  • Upgrade to GraphQL Java 18.3 #456

❀️ Contributors

We'd like to thank all the contributors who worked on this release!

v1.0.1

20 Jul 15:29
Compare
Choose a tag to compare

⭐ New Features

  • Improve handling of case where a source/parent is expected and is null #429
  • Support for resolving exceptions from a subscription #398
  • DataBinder using default auto grow collection limit #392

πŸͺ² Bug Fixes

  • Auto-registration of @GraphQlRepository does not work for output type defined as non-null #418
  • @Argument resolver fails when type coercion from a single value to SingletonList is involved #410
  • The GraphQL UI cannot be opened if a spring.mvc.servlet.path is configured #402

πŸ“” Documentation

  • Fix links to Boot "Web Endpoints" section and mention WebSocket endpoint not enabled by default #436
  • Update Javadoc of retrieve in GraphQlClient for decoding full data #434
  • Update documentation to show setting response headers with value from @SchemaMapping method #428

πŸ”¨ Dependency Upgrades

  • Upgrade to GraphQL Java 18.2 #446

❀️ Contributors

We'd like to thank all the contributors who worked on this release!

v1.0.0

18 May 14:35
Compare
Choose a tag to compare

⭐ New Features

  • Improve handling of concurrent requests in WebSocketGraphQlClient #388
  • Add start and stop methods to RSocketGraphQlClient #378
  • Adjust support for "application/graphql" media type so it is used only if explicitly requested #375
  • Expose map of "extensions" in GraphQlRequest #371
  • Support String and Number to be injected as the parent/source #370
  • Improve readability of assertion messages #361
  • HttpGraphQlClientTransport should respect an existing, explicitly set Content-Type #359
  • Add @LocalContextValue for access to attributes from the local GraphQLContext in DataFetchingEnvironment #353
  • Support Callable as a return value from controller methods for asynchronous execution #316
  • Add shouldPersistHeaders = true to GraphiQL options #257

πŸͺ² Bug Fixes

  • @ContextValue does not work for Mono argument #355
  • FieldAccessException should include field as well as global errors in its message #348

πŸ“” Documentation

  • Provide advice on number of instances and connections for WebSocketGraphQlClient and RSocketGraphQlClient #368
  • Slightly incorrect documentation about BatchMapping return values #360
  • Fix docs for WebGraphQlTester #358
  • Update minimum requirement to GraphQL Java 18.0 #357

❀️ Contributors

We'd like to thank all the contributors who worked on this release!

v1.0.0-RC1

19 Apr 16:36
Compare
Choose a tag to compare
v1.0.0-RC1 Pre-release
Pre-release

⭐ New Features

  • Do not include exception message for unresolved exceptions #352
  • GraphQlTester created via @GraphQlTest should use application JSON config #345
  • Support RSocket as a transport #339
  • Improve configuration and defaults for document location #338
  • Improve Exception Logging in ExceptionResolversExceptionHandler #336
  • Refactor GraphQlSource builder to separate programmatic vs SDL way of create GraphQLSchema #312
  • Support for application/graphql content type #108

πŸͺ² Bug Fixes

  • Principal is null when executing requests over WebSocket with Spring MVC #342

πŸ“” Documentation

  • Improve documentation samples on access to HTTP headers from controller #350

❀️ Contributors

We'd like to thank all the contributors who worked on this release!

v1.0.0-M6

22 Mar 16:23
Compare
Choose a tag to compare
v1.0.0-M6 Pre-release
Pre-release

⭐ New Features

  • Add client-side interception on GraphQlClient #332
  • Revisit GraphQlTester to align with GraphQlClient #317
  • Further alignment with GraphQL spec terminology #310
  • Provide details when schema resource is invalid #307
  • Bind zero-length nested input argument to a zero-length List instead of null #301
  • Apply a multiple values argument to the same property in Querydsl #281
  • Raise BindException from GraphQlArgumentBinder with binding errors #280
  • Revise JSONPath options in GraphQlTester #278
  • Improve server handling of WebSocket connection closing and subscription completion #276
  • Add support for @AuthenticationPrincipal annotated method parameter #272
  • Improve options to customize of ConversionService used for GraphQL argument binding #271
  • Support for GraphQL over WebSocket Ping and Pong message types #270
  • Allow binding full arguments map onto an object #258
  • Check for and eliminate duplicate schema resource registrations #230
  • Add a GraphQLClient #10

πŸͺ² Bug Fixes

  • "non-public interface is not defined by the given loader " when using input Projections for Mutations #333
  • Fix implementation of containsExactly #327
  • GraphQlWebSocketHandler incorrectly turns ExecutionResult with errors into an "error" message #320
  • GraphQlTester.executeAndVerify should not check for empty errors map #318
  • ArgumentMethodArgumentResolver and QueryByExampleDataFetcher are not thread safe #315
  • QuerydslDataFetcher: ClassCastException when using a variable with type other than String #311
  • Shortcut annotations @QueryMapping, @MutationMapping, and @SubscriptionMapping should target ElementType.METHOD only #290
  • @Valid arguments and a Principal argument cannot both be declared on the same method #289
  • Incorrect arguments to Assert.isInstanceOf in AnnotatedControllerConfigurer #282

πŸ“” Documentation

  • Document custom type resolution strategies #334
  • Document why Jackson annotations on types are not used for JSON serialization #321
  • Update documentation with guidance on the use of aggregates and projections with Spring Data #264
  • Add section on directives to reference documentation #262
  • Improve guidance on use of projections with Querydsl and Query By Example #248
  • Add section on operation caching to reference documentation #233

❀️ Contributors

We'd like to thank all the contributors who worked on this release!

1.0.0-M1 Release

07 Jul 19:49
Compare
Choose a tag to compare
1.0.0-M1 Release Pre-release
Pre-release

⭐ New Features

  • Support programmatic GraphQLSchema creation #4
  • Testing Support #43
  • Context Propagation to DataFetcher's with Spring MVC #53
  • Add basic micrometer metrics support #16
  • Add endpoint to print the schema #13
  • Add built-in GraphiQL integration #12
  • Use chained handling for web requests #49
  • Flexible handling of DataFetcher exceptions #51
  • Add Querydsl integration #59
  • Add security classes to main spring-graphql module #82
  • Add Security Configuration to Boot Starter #81
  • Remove configuration key for GraphQL schema path #79
  • Separate Property for GraphiQL Path #70
  • Add Builder for GraphQlTester and WebGraphQlTester #66
  • GraphqlTester should not have web dependencies #65
  • Add Spring MVC Security Sample #58
  • Support for multiple graphql schema files #56
  • Reactive DataFetcherExceptionResolver #52
  • Encapsulate GraphQL initialization #48
  • Reactor based DataFetcher support #47
  • Add GraphQL tester auto-configuration #46
  • Change default schema location from root package to "graphql" #44
  • Add Interface for GraphQL Request Execution #42
  • Only build GraphQL once #37
  • Replace WebSocket-related SimpleUrlHandlerMapping Sub-Classes #35
  • Allow HTTP and WebSocket To Use The Same Path #30
  • Refine GraphQL metrics #19
  • Remove Spring Boot starters #17
  • Support for WebInterceptor configuration #7
  • Add response headers to WebOutput #6
  • Make endpoint url configurable and default to "/graphql" #5

πŸͺ² Bug Fixes

  • Failing webmvc sample with querydsl predicate executor #71
  • Missing Configuration metadata in starter module #33

πŸ“” Documentation

  • Refine Querydsl integration documentation #83
  • Write Spring GraphQL Reference Documentation #78
  • fix links in doc #77
  • Correct location of schema in README. #57
  • Add sample application #15

❀️ Contributors

We'd like to thank all the contributors who worked on this release!