|
| 1 | ++++ |
| 2 | +title = "GraphQL Java aims to be used directly" |
| 3 | +author = "Andreas Marek" |
| 4 | +tags = [] |
| 5 | +categories = [] |
| 6 | +date = 2018-11-10T01:00:00+10:00 |
| 7 | ++++ |
| 8 | + |
| 9 | +There seems to be a common misconception about GraphQL Java: that you should not use it directly, |
| 10 | +but rather use another library build on top of it. |
| 11 | + |
| 12 | +We think it is important to make it clear, that this is not the case: GraphQL Java aims to be a library used directly |
| 13 | +without any additionally abstraction on top. It was always build with this goal in mind. |
| 14 | + |
| 15 | +To be fair: we didn't do a very good job so far to make that clear. For example up |
| 16 | +[until recently](https://www.graphql-java.com/blog/moving-projects/) we hosted several other projects which |
| 17 | +provided abstractions on top of GraphQL Java. This was because of historical reasons and we didn't give any |
| 18 | +guidance on when to use what. There are also currently more tutorials out there which don't use GraphQL Java directly |
| 19 | +compared to tutorials which do. |
| 20 | + |
| 21 | +The other reason people might think that GraphQL Java is not suitable is because the [core project](https://github.com/graphql-java/graphql-java) |
| 22 | +doesn't provide any easy way to get full service with HTTP endpoint up and running. |
| 23 | +And the existing third party projects providing for example Spring Boot support |
| 24 | +are adding abstractions. |
| 25 | + |
| 26 | +The core project doesn't deal with any form of HTTP or JSON specific things and has on purpose basically no |
| 27 | +dependencies at all. This will not change, but we recognize the need for having an easy way to get a |
| 28 | +full service up and running. This is why we are currently working on first class Spring (Boot) support. |
| 29 | + |
| 30 | +This is not done yet, but it will provide an easy way to integrate GraphQL Java in a Spring (Boot) application |
| 31 | +without adding any abstraction on top of GraphQL Java. It will also be extended over time with more advanced features |
| 32 | +like Apollo Defer support. |
| 33 | + |
| 34 | + |
| 35 | +To recap: |
| 36 | + |
| 37 | +1. GraphQL Java aims to be a first class library used directly |
| 38 | +1. The [GraphQL Java core project](https://github.com/graphql-java/graphql-java) doesn't deal with HTTP/JSON and will continue not do it |
| 39 | +1. The [GraphQL Java Spring project](https://github.com/graphql-java/graphql-java-spring) will complement |
| 40 | +the core project in providing comprehensive Spring (Boot) support |
| 41 | + |
| 42 | +Cheers,<br> |
| 43 | +Andi |
| 44 | + |
| 45 | + |
0 commit comments