This service allows to create users and search for users by their last name via REST API.
- The service assumes that every created user is a new unique user
- The only required field for the user is lastName
- Search only does exact match
- Search requires lastName to be 1 character or more
- No pagination for search
- Java 21
- Kotlin 1.9.23
- Gradle 8.7
Run the following command to build and run:
./gradlew openApiGenerate bootRun
The result would be a running dev server available on http://localhost:8080/v1/users
Run the following command to build artefact:
./gradlew openApiGenerate bootRun
alternatively one can use Docker image:
docker run --rm -u gradle -v "$PWD":/home/gradle/project -w /home/gradle/project gradle gradle openApiGenerate build
Service can be found on http://localhost:8080/v1/users
To create user:
curl -X POST -H Content-Type:\ application/json -d '{"firstName":"Foo", "lastName":"Bar", "email":"[email protected]"}' http://localhost:8080/user
That should return 204 No Content. Wrong user (no lastName) should result in 400 Bad Request.
To search for users with lastName "Foo":
curl http://localhost:8080/user\?lastName\=Foo
That should return 200 OK and a JSON array of User objects:
[
{
"id": "UUID",
"firstName": "String",
"lastName": "String",
"email": "String"
}
]
Wrong query without lastName value should result in 400 Bad Request.