All Projects → geowarin → graphql-webflux

geowarin / graphql-webflux

Licence: MIT license
GraphQL application using spring 5 reactive framework (webflux)

Programming Languages

kotlin
9241 projects
HTML
75241 projects

Projects that are alternatives of or similar to graphql-webflux

aws-junit5
JUnit 5 extensions for AWS
Stars: ✭ 18 (-59.09%)
Mutual labels:  junit5
junit5-kubernetes
Use kubernetes pod from your Junit5 test classes
Stars: ✭ 40 (-9.09%)
Mutual labels:  junit5
junit5-demo
Demos for JUnit 5
Stars: ✭ 46 (+4.55%)
Mutual labels:  junit5
Spring5Tutorial
Spring 文件的範例資源
Stars: ✭ 36 (-18.18%)
Mutual labels:  webflux
dynatest
Simplest Most Powerful Testing Framework For Kotlin
Stars: ✭ 22 (-50%)
Mutual labels:  junit5
jpa-unit
JUnit extension to test javax.persistence entities
Stars: ✭ 28 (-36.36%)
Mutual labels:  junit5
2021-nolto
부담없이 자랑하는 작고 소중한 내 프로젝트 🧸✨
Stars: ✭ 34 (-22.73%)
Mutual labels:  junit5
testing-spring-boot-applications-masterclass
🍃 Everything You Need to Know About Testing Spring Boot Applications
Stars: ✭ 185 (+320.45%)
Mutual labels:  junit5
Programacion-AlumnosClase
Ejemplo inicial de Programación Orientada a Objetos, con Java. Nuestra primeras clases, con usos, abusos, y algunos tests en 1DAM. Curso 2021-2022.
Stars: ✭ 13 (-70.45%)
Mutual labels:  junit5
spring-webflux-template
Spring WebFlux REST template
Stars: ✭ 43 (-2.27%)
Mutual labels:  webflux
faucet-pipeline-spring-boot-starter
faucet-pipeline for Spring Boot
Stars: ✭ 17 (-61.36%)
Mutual labels:  webflux
spring-webflux-research
spring webflux research
Stars: ✭ 42 (-4.55%)
Mutual labels:  webflux
kotlin-kafka-and-kafka-streams-examples
Kafka with KafkaReactor and Kafka Streams Examples in Kotlin
Stars: ✭ 33 (-25%)
Mutual labels:  webflux
rate-my-cat
Sample application for the book "Mastering Software Testing with JUnit 5"
Stars: ✭ 23 (-47.73%)
Mutual labels:  junit5
springboot-junit5-mockito2
Show case for how to use junit 5 and mockito 2 for unit testing and integration test in spring boot 2
Stars: ✭ 18 (-59.09%)
Mutual labels:  junit5
flyway-junit5-extensions
Flyway JUnit 5 Extension to clean / migrate your database in tests.
Stars: ✭ 14 (-68.18%)
Mutual labels:  junit5
spring-boost
Introduce Clojure and live-coding power to your Spring Boot application!
Stars: ✭ 23 (-47.73%)
Mutual labels:  webflux
tutorials
Code samples for tutorials blog
Stars: ✭ 49 (+11.36%)
Mutual labels:  webflux
spring-jooq-flyway-testcontainers-junit5
🚀 Example project with configured Spring Boot, JooQ, TestContainers, MySQL container and JUnit5
Stars: ✭ 29 (-34.09%)
Mutual labels:  junit5
springboot2-swagger
Swagger integration with Spring Boot 2.0.1.BUILD-SNAPSHOT and Spring Cloud Finchley.BUILD-SNAPSHOT
Stars: ✭ 17 (-61.36%)
Mutual labels:  webflux

GraphQL and Spring Webflux

This is a sample GraphQL application written in kotlin that uses graphQL-java and spring webflux (with spring-boot 2).

When browsing the application on localhost:8080, you will see the graphiQL explorer.

Why

There is a graphql-spring-boot-starter already available but it uses a Servlet which forces us to use spring MVC.

Creating a handler for webflux using graphql-java is fairly trivial but there is actually a spec to follow when serving graphql over HTTP.

This is my implementation of the spec, it is fully tested and ready to be used in your application.

I hope it can serve as a base implementation if graphql-java's authors wish to support Webflux in the future.

Tests

Tests are written using the reactive WebClient and junit 5.

They require gradle 4.6 to work, so be sure to use the wrapper.

Your feedback is welcome

I'm not a reactor specialist and I don't have a clear understanding of graphql-java async's internals yet. In particular, I'm curious about this issue.

If you have more insights, please give your opinion.

I did my best to implement the graphql spec but there might be bugs or things I overlooked.

If you find anything odd, contributing with an issue or a failing test would be wonderful. ❤️

Thanks!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].