Gradle based spring boot application which provide below APIs of the users using test driven development.
- Signup - Login - Get all users - Get user by username -
NOTE- this API can be accessed by everyone. -
Request
curl --location --request POST 'http://localhost:8080/auth/signup' \ --header 'Content-Type: application/json' \ --data-raw '{ "username": "test_username", "password": "test_password", "role": "ROLE_test", "firstname": "test_firstname", "lastname": "test_lastname" }' - Response
{ "status": "success", "code": "CREATED", "message": "user has created successfully", "data": { "token": "JWT_TOKEN" } } - Request
curl --location --request POST 'http://localhost:8080/auth/login' \ --header 'Content-Type: application/json' \ --data-raw '{ "username": "test_username", "password": "test_password" }' - Response
{ "status": "success", "code": "OK", "message": "user has logged in successfully", "data": { "token": "JWT_TOKEN" } } -
NOTE- this API can be accessed by authenticated users who are having admin role. -
Request
curl --location --request GET 'http://localhost:8080/users' \ --header 'Authorization: Bearer JWT_TOKEN' \ - Response
{ "status": "success", "code": "OK", "message": "fetched users details successfully!!", "data": { "users": [ { "username": "test_username", "password": "test_password", "firstname": "test_firstname", "lastname": "test_lastname", "role": "ROLE_test" } ] } } -
NOTE- this API can be accessed by authenticated users who are having admin and user roles. -
Request
curl --location --request GET 'http://localhost:8080/users/test_username' \ --header 'Authorization: Bearer JWT_TOKEN' \ - Response
{ "status": "success", "code": "OK", "message": "fetched user details successfully!!", "data": { "user": { "username": "test_username", "password": "test_password", "firstname": "test_firstname", "lastname": "test_lastname", "role": "ROLE_test" } } }