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
+# }
+#}