- linux
- intellij
- java 17
- spring data
- spring web
- spring hateoas
- rds aws
- postgresql
API ROUTE | DESCRIPTION | STATUS |
---|---|---|
[POST] /customers/add | Add a new customer | 201 |
[GET] /customers/customer/{id} | Retrieve a customer by ID | 200 |
[GET] /customers | Retrieve all the customers | 200 |
[PUT] /customers | Update a customer by ID | 200 |
[DELETE] /customers/customer/{id} | Delete a customer by ID | 204 |
id | address | name | occupation |
---|---|---|---|
1 | avenida silveira dutra 1002 | Maria Silva | Engineer |
2 | rua joao freire 231 | John Dutra | Teacher |
3 | The shine | Bilbo Baggins | Chef |
curl --location 'http://localhost:8001/customers/add' \
--header 'Content-Type: application/json' \
--data '{
"name": "Joao Carlos",
"occupation": "Thief",
"address": "Rua Test 51"
}'
{
"id": 4,
"name": "Joao Carlos",
"occupation": "Thief",
"address": "Rua Test 51"
}
curl --location 'http://localhost:8001/customers/all'
[
{
"id": 1,
"name": "Maria Silva",
"occupation": "Engineer",
"address": "avenida silveira dutra 1002",
"links": [
{
"rel": "self",
"href": "http://localhost:8001/customers/customer/1"
}
]
},
{
"id": 2,
"name": "John Dutra",
"occupation": "Teacher",
"address": "rua joao freire 231",
"links": [
{
"rel": "self",
"href": "http://localhost:8001/customers/customer/2"
}
]
},
{
"id": 3,
"name": "Bilbo Baggins",
"occupation": "Chef",
"address": "The shine",
"links": [
{
"rel": "self",
"href": "http://localhost:8001/customers/customer/3"
}
]
},
{
"id": 4,
"name": "Alice Morgan",
"occupation": "Teacher",
"address": "Street Test 234",
"links": [
{
"rel": "self",
"href": "http://localhost:8001/customers/customer/4"
}
]
}
]
curl --location 'http://localhost:8001/customers/customer/2'
{
"id": 2,
"name": "John Dutra",
"occupation": "Teacher",
"address": "rua joao freire 231",
"_links": {
"Customers list": {
"href": "http://localhost:8001/customers/all"
},
"self": {
"href": "http://localhost:8001/customers/customer/2"
}
}
}
curl --location --request PUT 'http://localhost:8001/customers/update/4' \
--header 'Content-Type: application/json' \
--data '{
"id": 4,
"name": "Alice Morgan",
"occupation": "Tcher",
"address": "Street Test 234"
}'
{
"id": 4,
"name": "Alice Morgan",
"occupation": "Teacher",
"address": "Street Test 234"
}
curl --location --request DELETE 'http://localhost:8001/customers/customer/5'
API ROUTE | DESCRIPTION | STATUS |
---|---|---|
[POST] /orders/add | Add a new order | 201 |
[GET] /orders/order/{id} | Retrieve an order by ID | 200 |
[GET] /orders | Retrieve all the orders | 200 |
[PUT] /orders | Update an order by ID | 200 |
[PUT] /orders/{id}/complete | Update an order status to completed | 200 |
[PUT] /orders/{id}/cancel | Update an order status to cancelled | 200 |
[DELETE] /orders/order/{id} | Delete an order by ID | 204 |
status | id | description |
---|---|---|
1 | 1 | review |
2 | 2 | travel |
0 | 3 | sale |
curl --location 'http://localhost:8001/orders/add' \
--header 'Content-Type: application/json' \
--data '{
"status": "IN_PROGRESS",
"description": "review"
}'
{
"id": 4,
"status": "IN_PROGRESS",
"description": "review"
}
curl --location 'http://localhost:8001/orders/all'
[
{
"id": 1,
"status": "COMPLETED",
"description": "review",
"links": [
{
"rel": "self",
"href": "http://localhost:8001/orders/order/1"
},
{
"rel": "Customer order list",
"href": "http://localhost:8001/orders/all"
}
]
},
{
"id": 2,
"status": "IN_PROGRESS",
"description": "travel",
"links": [
{
"rel": "self",
"href": "http://localhost:8001/orders/order/2"
},
{
"rel": "Customer order list",
"href": "http://localhost:8001/orders/all"
}
]
},
{
"id": 3,
"status": "IN_PROGRESS",
"description": "sale",
"links": [
{
"rel": "self",
"href": "http://localhost:8001/orders/order/3"
},
{
"rel": "Customer order list",
"href": "http://localhost:8001/orders/all"
}
]
}
]
curl --location 'http://localhost:8001/orders/order/1'
{
"id": 1,
"status": "COMPLETED",
"description": "review",
"_links": {
"All Orders": {
"href": "http://localhost:8001/orders/all"
},
"self": {
"href": "http://localhost:8001/orders/order/1"
}
}
}
curl --location --request PUT 'http://localhost:8001/orders/update/4' \
--header 'Content-Type: application/json' \
--data '{
"id": 4,
"status": "CANCELLED",
"description": "review"
}'
{
"id": 4,
"status": "CANCELLED",
"description": "review"
}
curl --location --request PUT 'http://localhost:8001/orders/4/complete' \
--header 'Content-Type: application/json' \
--data '{
"status": "COMPLETED",
"description": "review"
}'
{
"id": 4,
"status": "COMPLETED",
"description": "review",
"_links": {
"self": {
"href": "http://localhost:8001/orders/order/4"
},
"Order list": {
"href": "http://localhost:8001/orders/all"
}
}
}
curl --location --request PUT 'http://localhost:8001/orders/5/cancel' \
--header 'Content-Type: application/json' \
--data '{
"status": "COMPLETED",
"description": "review"
}'
{
"id": 5,
"status": "CANCELLED",
"description": "shop",
"_links": {
"self": {
"href": "http://localhost:8001/orders/order/5"
},
"Order list": {
"href": "http://localhost:8001/orders/all"
}
}
}
curl --location --request DELETE 'http://localhost:8001/orders/order/4'
EXCEPTION NAME | DESCRIPTION | HTTP STATUS CODE |
---|---|---|
CustomerNotFoundExceptionHateoas | Could not find id | 404 |
OrderNotFoundExceptionHateoas | Could not find id | 404 |
Method Not Allowed | You can't complete the task, the order has a COMPLETED status | 405 |