This project contains a full example of an application developed using GraphQL within the Java ecosystem. The backend uses Spring boot, Spring Data, and the GraphQL Java Kickstart library.
The frontend uses React (with React hooks) and the Apollo GraphQL client.
The backend requires JDK 11+ and can be installed using:
cd whoiswho-backend
./mvnw package
The frontend requires Node.js 12+ can be installed using:
cd whoiswho-frontend
npm install
To run the backend, you need JDK 11+ and you can use the following command:
cd whoiswho-backend
WHOISWHO_SECURITY_PASSWORDSTRENGTH=10
WHOISWHO_SECURITY_TOKENSECRET=myspecialsecret
./mvnw spring-boot:run
To run the frontend, you need Node.js 12+ and you can use the following command:
cd whoiswho-frontend
npm start
The backend provides a GraphQL Playground to test things out. The playground is located at http://localhost:8080/playground by default.
Authentication happens by passing a JWT token as a header by using the Authorization: Bearer <token>
header.
A JWT token can be obtained by calling the login
mutation. By default, there is a user created with the following credentials:
- E-mail: [email protected]
- Password: password
By default, the JWT token is valid for 4 hours, but this can be extended by the use of the whoiswho.security.tokenexpiration
property.
The frontend will run at http://localhost:3000. Logging in can be done through the credentials provided above.