kobby

Kobby is a codegen plugin of Kotlin DSL Client by GraphQL schema. The generated DSL supports execution of complex GraphQL queries, mutation and subscriptions in Kotlin with syntax similar to native GraphQL syntax.

APACHE-2.0 License

Stars
80
Committers
4

Bot releases are visible (Hide)

kobby - Release 4.1.0

Published by ermadmi78 about 1 month ago

As a side effect of [#43] bug fix, it became possible to generate mutable DTO classes.

Gradle:

kobby {
    kotlin {
        dto {
            maxNumberOfFieldsForImmutableDtoClass = 0 // Generate mutable DTO classes
            maxNumberOfFieldsForImmutableInputClass = 0 // Generate mutable Input classes
        }
    }
}

Maven:

<build>
    <plugins>
        <plugin>
            <groupId>io.github.ermadmi78</groupId>
            <artifactId>kobby-maven-plugin</artifactId>
            <executions>
                <execution>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>generate-kotlin</goal>
                    </goals>
                    <configuration>
                        <kotlin>
                            <dto>
                                <!-- Generate mutable DTO classes -->
                                <maxNumberOfFieldsForImmutableDtoClass>0</maxNumberOfFieldsForImmutableDtoClass>
                                
                                <!-- Generate mutable Input classes -->
                                <maxNumberOfFieldsForImmutableInputClass>0</maxNumberOfFieldsForImmutableInputClass>
                            </dto>
                        </kotlin>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

Bug fixes

  • java.lang.ClassFormatError for generated dto classes [#43]

New features

  • Mutable DTO support

Contributors

  • @ermadmi78
kobby - Release 4.1.0-beta.01

Published by ermadmi78 about 1 month ago

As a side effect of [#43] bug fix, it became possible to generate mutable DTO classes.

Gradle:

kobby {
    kotlin {
        dto {
            maxNumberOfFieldsForImmutableDtoClass = 0 // Generate mutable DTO classes
            maxNumberOfFieldsForImmutableInputClass = 0 // Generate mutable Input classes
        }
    }
}

Maven:

<build>
    <plugins>
        <plugin>
            <groupId>io.github.ermadmi78</groupId>
            <artifactId>kobby-maven-plugin</artifactId>
            <executions>
                <execution>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>generate-kotlin</goal>
                    </goals>
                    <configuration>
                        <kotlin>
                            <dto>
                                <!-- Generate mutable DTO classes -->
                                <maxNumberOfFieldsForImmutableDtoClass>0</maxNumberOfFieldsForImmutableDtoClass>
                                
                                <!-- Generate mutable Input classes -->
                                <maxNumberOfFieldsForImmutableInputClass>0</maxNumberOfFieldsForImmutableInputClass>
                            </dto>
                        </kotlin>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

Bug fixes

  • java.lang.ClassFormatError for generated dto classes [#43]

New features

  • Mutable DTO support

Contributors

  • @ermadmi78
kobby - Release 4.0.3 Latest Release

Published by ermadmi78 3 months ago

Bug fixes

  • "notify" field name does not compile [#42]

Contributors

  • @ermadmi78
kobby - Release 4.0.3-beta.03

Published by ermadmi78 3 months ago

Bug fixes

  • "notify" field name does not compile [#42]

Contributors

  • @ermadmi78
kobby - Release 4.0.3-beta.02

Published by ermadmi78 3 months ago

Bug fixes

  • "notify" field name does not compile [#42]

Contributors

  • @ermadmi78
kobby - Release 4.0.1

Published by ermadmi78 5 months ago

Bug fixes

  • Got an error message from the Gradle plugin when trying to update a project to Kotlin 2.0.0 [#41]

Contributors

  • @ermadmi78
kobby - Release 4.0.0

Published by ermadmi78 6 months ago

The main goal of this release is migration from the legacy GraphQL WebSockets protocol to the new one. Read this blog post for more details.

Breaking changes

  • Migrate to graphql-ws protocol for GraphQL over WebSockets [#38]
  • Remove GraphQL Java Kickstart support [#39]

New features

  • Change default value of subscriptionReceiveTimeoutMillis to 10000 in CompositeKtorAdapter [#40]

Additionally all sample projects have been migrated to the official GraphQL Spring Boot Starter. See Gradle Example, Maven Example, Gradle Tutorial and Maven Tutorial.

Contributors

  • @ermadmi78
kobby - Release 4.0.0-alpha.01

Published by ermadmi78 6 months ago

Breaking changes

  • Migrate to graphql-ws protocol for GraphQL over WebSockets [#38]
  • Remove GraphQL Java Kickstart support [#39]

New features

  • Change default value of subscriptionReceiveTimeoutMillis to 10000 in CompositeKtorAdapter [#40]

Contributors

  • @ermadmi78
kobby - Release 3.1.0

Published by ermadmi78 over 1 year ago

New features

  • Generate extension functions toBuilder, toDto, and toInput for DTO classes [#37]

Contributors

  • @ermadmi78
kobby - Release 3.0.2

Published by ermadmi78 over 1 year ago

  • Build script refactoring
  • Upgrade Gradle Wrapper to 8.1.1

Contributors

  • @ermadmi78
kobby - Release 3.0.2-alpha.12

Published by ermadmi78 over 1 year ago

Upgrade Gradle Wrapper to 8.1.1

kobby - Release 3.0.2-alpha.08

Published by ermadmi78 over 1 year ago

Build script refactoring

kobby - Release 3.0.0

Published by ermadmi78 over 1 year ago

The main goal of this release is to support Kotlinx Serialization engine in the generated GraphQL DSL. This feature allows you to use the Kobby plugin in multiplatform projects.

New features

  • Support Kotlin Serialization to enable multiplatform DSL Client [#7]

Breaking changes

  • Minimum Kotlin version upgraded to 1.8.0
  • Minimum Gradle version upgraded to 8.0
  • Minimum Maven version upgraded to 3.9.1
  • Remove the ability to switch off dynamic HTTP headers in Ktor adapters [#34]
  • Remove the context inheritance feature [#35]

Contributors

  • @ermadmi78
kobby - Release 3.0.0-beta.01

Published by ermadmi78 over 1 year ago

The main goal of this release is to support the Kotlinx Serialization engine [#7] in the generated GraphQL DSL. This feature allows you to use the Kobby plugin in multiplatform projects.

New features

  • Support Kotlin Serialization to enable multiplatform DSL Client [#7]

Breaking changes

  • Minimum Kotlin version upgraded to 1.8.0
  • Minimum Gradle version upgraded to 8.0
  • Minimum Maven version upgraded to 3.9.1
  • Remove the ability to switch off dynamic HTTP headers in Ktor adapters [#34]
  • Remove the context inheritance feature [#35]

Contributors

  • @ermadmi78
kobby - Release 2.1.1

Published by ermadmi78 over 1 year ago

Bug fixes

  • Change type of errorType field in Error DTO class from enum to String [#33]

Contributors

  • @ermadmi78
kobby - Release 2.1.0

Published by ermadmi78 almost 2 years ago

New features

  • Commit function for subscription [#31]

Contributors

  • @ermadmi78
kobby - Release 2.0.0

Published by ermadmi78 about 2 years ago

Breaking changes

  • Minimum Kotlin version upgraded to 1.6.0
  • Minimum Ktor version upgraded to 2.0.0 [#24]
  • Change default entity context access from inheritance to function [#29]
  • Switch on dynamic HTTP headers in Ktor adapters by default [#30]

New features

  • Split ___innerBuild function into multiple subfunctions [#22]

Bug fixes

  • Compilation error 'More than one overridden descriptor declares a default value' [#27]
  • Kobby plugin crashes on schemas with comments containing '%' symbols [#28]

Contributors

  • @ermadmi78
kobby - Release 2.0.0-beta.01

Published by ermadmi78 about 2 years ago

Breaking changes

  • Minimum Kotlin version upgraded to 1.6.0
  • Minimum Ktor version upgraded to 2.0.0 [#24]
  • Change default entity context access from inheritance to function [#29]
  • Switch on dynamic HTTP headers in Ktor adapters by default [#30]

New features

  • Split ___innerBuild function into multiple subfunctions [#22]

Bug fixes

  • Compilation error 'More than one overridden descriptor declares a default value' [#27]
  • Kobby plugin crashes on schemas with comments containing '%' symbols [#28]

Contributors

  • @ermadmi78
kobby - Release 1.6.0

Published by ermadmi78 about 2 years ago

New features

  • Dynamic HTTP headers support #26

Contributors

  • @ermadmi78
kobby - Release 1.5.1

Published by ermadmi78 over 2 years ago

New features

  • Receive message timeout for subscriptions in Ktor composite adapter #23

Contributors

  • @ermadmi78
Package Rankings
Top 26.91% on Repo1.maven.org
Badges
Extracted from project README
License Plugin Portal Maven Central Discussions alt text alt text alt text alt text alt text alt text alt text
Related Projects