diff --git a/pom.xml b/pom.xml index 6707776..81e0296 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ org.springframework.boot spring-boot-starter-parent - 3.4.0-M3 + 3.4.0 @@ -77,6 +77,10 @@ spring-boot-docker-compose + + org.springframework.boot + spring-boot-starter-graphql + org.springframework.boot spring-boot-starter-web diff --git a/src/main/java/gt/app/config/security/SecurityConfig.java b/src/main/java/gt/app/config/security/SecurityConfig.java index 53a6983..3aced7c 100644 --- a/src/main/java/gt/app/config/security/SecurityConfig.java +++ b/src/main/java/gt/app/config/security/SecurityConfig.java @@ -35,6 +35,8 @@ public class SecurityConfig { "/swagger-ui/**", "/swagger-ui.html/**", "/signup/**", + "/graphiql/**", + "/graphql/**", "/" //landing page is allowed for all }; diff --git a/src/main/java/gt/app/modules/note/NoteRepository.java b/src/main/java/gt/app/modules/note/NoteRepository.java index ad4ebc0..34604dd 100644 --- a/src/main/java/gt/app/modules/note/NoteRepository.java +++ b/src/main/java/gt/app/modules/note/NoteRepository.java @@ -7,10 +7,12 @@ import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; +import org.springframework.graphql.data.GraphQlRepository; import org.springframework.transaction.annotation.Transactional; import java.util.Optional; +@GraphQlRepository interface NoteRepository extends JpaRepository { @EntityGraph(attributePaths = {"createdByUser"}) diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 7dc4eaa..843677a 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -15,7 +15,7 @@ spring: mvc: static-path-pattern: /static/** jpa: - show-sql: false + show-sql: true datasource: url: jdbc:h2:mem:testdb h2: #dev uses H2 and 'emailhog' docker container from docker-compose @@ -25,3 +25,6 @@ spring: compose: profiles: active: mailHog + graphql: + graphiql: + enabled: true diff --git a/src/main/resources/graphql/schema.graphqls b/src/main/resources/graphql/schema.graphqls new file mode 100644 index 0000000..f608af3 --- /dev/null +++ b/src/main/resources/graphql/schema.graphqls @@ -0,0 +1,43 @@ +type Note { + id: ID! + title: String! + createdByUser: User! + content: String! +} + +type User { + id: ID! + uniqueId: String! +} + + +input NoteInput { + title: String! + author: String +} + +type Query { + notes(note: NoteInput): [Note]! + noteById(id: ID!): Note +} + +#Test1: +#query MyQuery { +# noteById(id: "1") { +# id +# title +# content +# createdByUser { +# id +# uniqueId +# } +# } +#} + +#Test2 +#query Q2 { +# notes(note: {title: "Admin's First Note"}) { +# id +# content +# } +#}