Appliance
The appliance entity represents an electrical device used in residences, buildings, or companies, to facilitate daily tasks. This entity must be associated with an already created address.
Attributes table
Attribute | Type | Description | Required |
---|---|---|---|
name | String | Name of appliance | Yes |
brand | String | Street or avenue | Yes |
model | String | Numbers and letters to identify an appliance | Yes |
power | String | Electric tension or potential difference unit | Yes |
addressId | String | UUID from address Id | Yes |
Supported HTTP methods
GET
POST
PUT
DELETE
Request examples
Simple appliance creation linked to an existing address:
{
"name": "Air conditioner",
"brand": "Samsung",
"model": "AR415",
"power": "V220",
"addressId": "26ead1cd-c0d6-47bd-bb79-f0aeb4b897bb"
}
GET
GET ALL
Get all appliances
Example Request
curl -X GET 'https://kirgh-energy.up.railway.app/api/v1/appliances'
Example Response
{
"content": [
{
"id": "a818055c-24db-43a4-a6fc-7f02808fe1bb",
"name": "Ar Condicionado",
"brand": "Samsung",
"model": "AR12BVHZCWK",
"power": "V110"
}
],
"pageable": {
"sort": {
"empty": true,
"unsorted": true,
"sorted": false
},
"offset": 0,
"pageNumber": 0,
"pageSize": 20,
"paged": true,
"unpaged": false
},
"totalPages": 1,
"totalElements": 1,
"last": true,
"size": 20,
"number": 0,
"sort": {
"empty": true,
"unsorted": true,
"sorted": false
},
"numberOfElements": 1,
"first": true,
"empty": false
}
GET BY ID
Get the appliance by ID
Example Request
curl -X GET 'https://kirgh-energy.up.railway.app/api/v1/appliances/a818055c-24db-43a4-a6fc-7f02808fe1bb'
Example Response
{
"id": "a818055c-24db-43a4-a6fc-7f02808fe1bb",
"name": "Ar Condicionado",
"brand": "Samsung",
"model": "AR12BVHZCWK",
"power": "V110"
}
GET with Pagination and Filters
PAGE AND SIZE
Applying the parameters page=0 and size=2 results in returning the page with index 1 containing 2 records if they exist.
Example Request
curl -X GET 'https://kirgh-energy.up.railway.app/api/v1/appliances?page=0&size=2&sort=name,asc'
Example Response
{
"content": [
{
"id": "a818055c-24db-43a4-a6fc-7f02808fe1bb",
"name": "Ar Condicionado",
"brand": "Samsung",
"model": "AR12BVHZCWK",
"power": "V110"
},
{
"id": "6dcd8370-35b0-49af-b738-b0484c776909",
"name": "Geladeira",
"brand": "Consul",
"model": "FMA512",
"power": "V110"
}
],
"pageable": {
"sort": {
"empty": false,
"unsorted": false,
"sorted": true
},
"offset": 0,
"pageNumber": 0,
"pageSize": 2,
"paged": true,
"unpaged": false
},
"totalPages": 1,
"totalElements": 2,
"last": true,
"size": 2,
"number": 0,
"sort": {
"empty": false,
"unsorted": false,
"sorted": true
},
"numberOfElements": 2,
"first": true,
"empty": false
}
SORT
Applying the sort parameter with a value for sorting, in our case “brand”, results in returning records sorted in alphabetical order by brand.
Example Request
curl -X GET 'https://kirgh-energy.up.railway.app/api/v1/appliances?sort=brand'
Example Response
{
"content": [
{
"id": "6dcd8370-35b0-49af-b738-b0484c776909",
"name": "Geladeira",
"brand": "Consul",
"model": "FMA512",
"power": "V110"
},
{
"id": "a818055c-24db-43a4-a6fc-7f02808fe1bb",
"name": "Ar Condicionado",
"brand": "Samsung",
"model": "AR12BVHZCWK",
"power": "V110"
}
],
"pageable": {
"sort": {
"empty": false,
"unsorted": false,
"sorted": true
},
"offset": 0,
"pageNumber": 0,
"pageSize": 20,
"paged": true,
"unpaged": false
},
"totalPages": 1,
"totalElements": 2,
"last": true,
"size": 20,
"number": 0,
"sort": {
"empty": false,
"unsorted": false,
"sorted": true
},
"numberOfElements": 2,
"first": true,
"empty": false
}
ASC
Applying the asc parameter in conjunction with the sort parameter results in returning records in ascending order, alphabetically sorted by brand.
Example Request
curl -X GET 'https://kirgh-energy.up.railway.app/api/v1/appliances?sort=brand%2CASC'
Example Response
{
"content": [
{
"id": "7ac5630a-ac69-4df9-9d1e-3adf94a06e6b",
"name": "Fogão",
"brand": "Brastemp",
"model": "JHTF11",
"power": "V220"
},
{
"id": "6dcd8370-35b0-49af-b738-b0484c776909",
"name": "Geladeira",
"brand": "Consul",
"model": "FMA512",
"power": "V110"
},
{
"id": "64d8b99b-e8e9-478e-879b-798e7f87720d",
"name": "Televisão 42",
"brand": "LG",
"model": "42",
"power": "V110"
},
{
"id": "a818055c-24db-43a4-a6fc-7f02808fe1bb",
"name": "Ar Condicionado",
"brand": "Samsung",
"model": "AR12BVHZCWK",
"power": "V110"
}
],
"pageable": {
"sort": {
"empty": false,
"unsorted": false,
"sorted": true
},
"offset": 0,
"pageNumber": 0,
"pageSize": 20,
"paged": true,
"unpaged": false
},
"totalPages": 1,
"totalElements": 4,
"last": true,
"size": 20,
"number": 0,
"sort": {
"empty": false,
"unsorted": false,
"sorted": true
},
"numberOfElements": 4,
"first": true,
"empty": false
}
DESC
Applying the desc parameter in conjunction with the sort parameter results in returning records in descending order, alphabetically sorted by brand
Example Request
curl -X GET 'https://kirgh-energy.up.railway.app/api/v1/appliances?sort=brand%2CDESC'
Example Response
{
"content": [
{
"id": "a818055c-24db-43a4-a6fc-7f02808fe1bb",
"name": "Ar Condicionado",
"brand": "Samsung",
"model": "AR12BVHZCWK",
"power": "V110"
},
{
"id": "64d8b99b-e8e9-478e-879b-798e7f87720d",
"name": "Televisão 42",
"brand": "LG",
"model": "42",
"power": "V110"
},
{
"id": "6dcd8370-35b0-49af-b738-b0484c776909",
"name": "Geladeira",
"brand": "Consul",
"model": "FMA512",
"power": "V110"
},
{
"id": "7ac5630a-ac69-4df9-9d1e-3adf94a06e6b",
"name": "Fogão",
"brand": "Brastemp",
"model": "JHTF11",
"power": "V220"
}
],
"pageable": {
"sort": {
"empty": false,
"unsorted": false,
"sorted": true
},
"offset": 0,
"pageNumber": 0,
"pageSize": 20,
"paged": true,
"unpaged": false
},
"totalPages": 1,
"totalElements": 4,
"last": true,
"size": 20,
"number": 0,
"sort": {
"empty": false,
"unsorted": false,
"sorted": true
},
"numberOfElements": 4,
"first": true,
"empty": false
}
ALL RESOURCES COMBINED
Applying a combination of parameters, as demonstrated in our example, we use page, size, sort, and desc. The result of this request will be page 0, containing 1 records, which are sorted in descending order based on the brand, following the alphabetical sequence.
Example Request
curl -X GET 'https://kirgh-energy.up.railway.app/api/v1/appliances?street=Rua&page=0&size=1&sort=brand%2CDESC'
Example Response
{
"content": [
{
"id": "64d8b99b-e8e9-478e-879b-798e7f87720d",
"name": "Televisão 42",
"brand": "LG",
"model": "42",
"power": "V110"
}
],
"pageable": {
"sort": {
"empty": false,
"unsorted": false,
"sorted": true
},
"offset": 0,
"pageNumber": 0,
"pageSize": 1,
"paged": true,
"unpaged": false
},
"totalPages": 1,
"totalElements": 1,
"last": true,
"size": 1,
"number": 0,
"sort": {
"empty": false,
"unsorted": false,
"sorted": true
},
"numberOfElements": 1,
"first": true,
"empty": false
}
PUT
Updated fields of name and brand for the appliance.
Example Request
curl -X PUT 'https://kirgh-energy.up.railway.app/api/v1/appliances/a818055c-24db-43a4-a6fc-7f02808fe1bb' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "Ar condicionado inverter",
"city": "LG"
}'z
Example Response
{
"id": "a818055c-24db-43a4-a6fc-7f02808fe1bb",
"name": "Ar condicionado inverter",
"brand": "LG",
"model": "AR12BVHZCWK",
"power": "V110"
}
DELETE
To delete a appliance, you need to pass the ID as a parameter. Example:
Example Request
curl -X DEL 'https://kirgh-energy.up.railway.app/api/v1/appliances/6dcd8370-35b0-49af-b738-b0484c776909'
Example Response
{
"message": "appliance successfully deleted"
}