Criando uma API com Spring Boot e Kotlin — parte 3

Ronaldo Costa
24 min readNov 12, 2022

--

Logo do Spring Boot

O post de hoje vai ser bem curto, vamos apenas desenvolver os métodos PUT (atualizar) e DELETE (deletar) da nossa API. Lembrando que estamos desenvolvendo um CRUD de um setup de PC. Um setup nada mais é do que um conjunto de peças necessárias para montar um computador de mesa: placa-mãe, placa de vídeo, processador, memória ram, etc.

Função updateSetup

Muito bem, vamos lá, para atualizarmos um setup específico do nosso banco de dados precisamos receber seu id e o próprio objeto setup com os dados atualizados, após isso é necessário verificar se um setup com esse id realmente existe, caso exista, nós o atualizamos, caso não, vamos retornar um objeto de setup vazio. Segue o código:

@PutMapping("{id}")
fun updateSetup(@PathVariable id: Long, @RequestBody setup: Setup): Setup {
if(repository.existsById(id)) {
return repository.save(setup)
}
return Setup()
}

Bem simples, não? Primeiro usamos a notação @PutMapping para indicar que a função irá mapear o método HTPP PUT, depois informamos que uma propriedade id será necessária no caminho da url.

Procedendo para o desenvolvimento da função em si, seus parâmetros são: um id, que será usado no caminho da url, como já dito, e um objeto setup, que será passado no body (corpo) da requisição.

Então nós verificamos se um setup com o id informado realmente existe com a função existsById(), se existir, nós salvamos o setup atualizado e caso não exista, nós retornamos um objeto de setup vazio.

Para retornar esse objeto vazio, precisamos fazer algumas alterações nas nossas classes models. É preciso que as propriedades delas tenham valores padrão, a classe Part ficará dessa forma:

package br.com.pchunter.model

import br.com.pchunter.util.emptyString
import br.com.pchunter.util.zeroFloatNumber
import br.com.pchunter.util.zeroLongNumber
import com.fasterxml.jackson.annotation.JsonProperty
import javax.persistence.Entity
import javax.persistence.GeneratedValue
import javax.persistence.Id
@Entity
data class Part(
@Id
@GeneratedValue
@JsonProperty(value = "id", access = JsonProperty.Access.READ_ONLY)
val id: Long = zeroLongNumber(),
val title: String = emptyString(),
val description: String = emptyString(),
val url: String = emptyString(),
val value: Float = zeroFloatNumber()
)

Aqui nós definimos que os valores padrão serão números zero e string vazias por meio das funções zeroLongNumber(), emptyString() e zeroFloatNumber:

package br.com.pchunter.util

fun emptyString() = ""
fun zeroLongNumber() = 0L
fun zeroFloatNumber() = 0.0f

Quanto a classe Setup, vamos definir os valores padrão das suas propriedades como objetos de Part vazios e listas de Part também vazias:

package br.com.pchunter.model

import br.com.pchunter.util.zeroLongNumber
import com.fasterxml.jackson.annotation.JsonProperty
import javax.persistence.*
@Entity
data class Setup(
@Id
@GeneratedValue
@JsonProperty(value = "id", access = JsonProperty.Access.READ_ONLY)
val id: Long = zeroLongNumber(),
@OneToOne(cascade = [CascadeType.PERSIST])
val cpu: Part = Part(),
@OneToOne(cascade = [CascadeType.PERSIST])
val motherboard: Part = Part(),
@OneToMany(cascade = [CascadeType.PERSIST])
val gpus: List<Part> = listOf(Part()),
@OneToMany(cascade = [CascadeType.PERSIST])
val hds: List<Part> = listOf(Part()),
@OneToMany(cascade = [CascadeType.PERSIST])
val ssds: List<Part> = listOf(Part()),
@OneToMany(cascade = [CascadeType.PERSIST])
val rams: List<Part> = listOf(Part()),
@OneToMany(cascade = [CascadeType.PERSIST])
val fans: List<Part> = listOf(Part()),
@OneToOne(cascade = [CascadeType.PERSIST])
val powerSupply: Part = Part(),
@OneToOne(cascade = [CascadeType.PERSIST])
val cabinet: Part = Part(),
@OneToMany(cascade = [CascadeType.PERSIST])
val monitors: List<Part> = listOf(Part()),
@OneToOne(cascade = [CascadeType.PERSIST])
val keyboard: Part = Part(),
@OneToOne(cascade = [CascadeType.PERSIST])
val mouse: Part = Part()
) {
val totalValue: Float
get() {
var acm = 0.0f
acm += cpu.value +
motherboard.value +
powerSupply.value +
cabinet.value +
keyboard.value +
mouse.value
gpus.forEach { gpu ->
acm += gpu.value
}
hds.forEach { hd ->
acm += hd.value
}
ssds.forEach { ssd ->
acm += ssd.value
}
rams.forEach { ram ->
acm += ram.value
}
fans.forEach { fan ->
acm += fan.value
}
monitors.forEach { monitor ->
acm += monitor.value
}
return acm
}
}

Pronto, agora vamos testar essa função. Usando o Postman, faremos uma requisição GET para observarmos como estão os setups atuais:

[
{
"id": 474,
"cpu": {
"id": 476,
"title": "Processador AMD Ryzen 5 5600X",
"description": "Processador AMD Ryzen 5 5600X, 3.7GHz (4.6GHz Max Turbo), Cache 35MB, 6 Núcleos, 12 Threads, AM4 - 100-100000065BOX",
"url": "https://www.kabum.com.br/produto/129451/processador-amd-ryzen-5-5600x-3-7ghz-4-6ghz-max-turbo-cache-35mb-6-nucleos-12-threads-am4-100-100000065box",
"value": 1199.99
},
"motherboard": {
"id": 478,
"title": "Placa-Mãe Gigabyte B550M",
"description": "Placa-Mãe Gigabyte B550M Aorus Elite, AMD AM4, Micro ATX, DDR4",
"url": "https://www.kabum.com.br/produto/114781/placa-mae-gigabyte-b550m-aorus-elite-amd-am4-micro-atx-ddr4",
"value": 849.99
},
"gpus": [
{
"id": 482,
"title": "GTX 1660 Super",
"description": "Placa de Vídeo GTX 1660 Super Twin Fan Zotac Gaming NVIDIA GeForce, 6GB, GDDR6 - ZT-T16620F-10L",
"url": "https://www.kabum.com.br/produto/110396/placa-de-video-gtx-1660-super-twin-fan-zotac-gaming-nvidia-geforce-6gb-gddr6-zt-t16620f-10l",
"value": 1299.99
}
],
"hds": [
{
"id": 483,
"title": "HD Seagate 2TB",
"description": "HD Seagate 2TB BarraCuda, 3.5', SATA - ST2000DM008",
"url": "https://www.kabum.com.br/produto/100916/hd-seagate-2tb-barracuda-3-5-sata-st2000dm008",
"value": 299.99
}
],
"ssds": [
{
"id": 487,
"title": "SSD 512 GB",
"description": "SSD 512 GB XPG S41 TUF, M.2 PCIe, Leitura: 3500MB/s e Gravação: 2400MB/s - AGAMMIXS41-512G-C",
"url": "https://www.kabum.com.br/produto/127700/ssd-512-gb-xpg-s41-tuf-m-2-pcie-leitura-3500mb-s-e-gravacao-2400mb-s-agammixs41-512g-c",
"value": 409.99
}
],
"rams": [
{
"id": 485,
"title": "Memoria, Ram 8, Gb",
"description": "Memoria, Ram 8, Gb, Xpg, D60g, 3200 Mhz, Rgb, Ddr4, Ax4u320088g16ast60.",
"url": "https://www.kabum.com.br/produto/219915/memoria-ram-8-gb-xpg-d60g-3200-mhz-rgb-ddr4-ax4u320088g16ast60-",
"value": 390.06
},
{
"id": 486,
"title": "Memoria, Ram 8, Gb",
"description": "Memoria, Ram 8, Gb, Xpg, D60g, 3200 Mhz, Rgb, Ddr4, Ax4u320088g16ast60.",
"url": "https://www.kabum.com.br/produto/219915/memoria-ram-8-gb-xpg-d60g-3200-mhz-rgb-ddr4-ax4u320088g16ast60-",
"value": 390.06
}
],
"fans": [
{
"id": 481,
"title": "Cooler Fan Rise Mode Energy",
"description": "Cooler Fan Rise Mode Energy, 3 Unidades, 120mm, ARGB, Preto - FN-02-RGB-5V",
"url": "https://www.kabum.com.br/produto/153647/cooler-fan-rise-mode-energy-3-unidades-120mm-argb-preto-fn-02-rgb-5v",
"value": 129.99
}
],
"powerSupply": {
"id": 480,
"title": "Fonte Corsair CV550",
"description": "Fonte Corsair CV550, 550W, 80 Plus Bronze - CP-9020210-BR",
"url": "https://www.kabum.com.br/produto/108257/fonte-corsair-cv550-550w-80-plus-bronze-cp-9020210-br",
"value": 359.99
},
"cabinet": {
"id": 475,
"title": "Gabinete Gamer Corsair Carbide Series Spec Delta",
"description": "Gabinete Gamer Corsair Carbide Series Spec Delta, Mid-Tower, RGB, Lateral em Vidro Temperado, Preto, CC-9011166-WW",
"url": "https://www.kabum.com.br/produto/100004/gabinete-gamer-corsair-carbide-series-spec-delta-mid-tower-rgb-lateral-em-vidro-temperado-preto-cc-9011166-ww",
"value": 399.99
},
"monitors": [
{
"id": 484,
"title": "Monitor Gamer LG Ultra Gear 27 Full HD",
"description": "Monitor Gamer LG Ultra Gear 27 Full HD, 144 Hz, 1ms, IPS, HDMI e DisplayPort, sRGB 99%, HDR10, FreeSync, VESA, Altura Ajustável - 27GL650F-B",
"url": "https://www.kabum.com.br/produto/380514/monitor-gamer-lg-ultra-gear-27-full-hd-144-hz-1ms-ips-hdmi-e-displayport-srgb-99-hdr10-freesync-vesa-altura-ajustavel-27gl650f-b",
"value": 1559.99
}
],
"keyboard": {
"id": 477,
"title": "Teclado Mecânico Gamer HyperX Alloy Origins Core",
"description": "Teclado Mecânico Gamer HyperX Alloy Origins Core, RGB, Switch HyperX Red, ABNT2 - HX-KB7RDX-BR",
"url": "https://www.kabum.com.br/produto/105009/teclado-mecanico-gamer-hyperx-alloy-origins-core-rgb-switch-hyperx-red-abnt2-hx-kb7rdx-br",
"value": 419.99
},
"mouse": {
"id": 479,
"title": "Mouse Gamer HyperX Pulsefire Surge",
"description": "Mouse Gamer HyperX Pulsefire Surge RGB 16000 DPI - HX-MC002B",
"url": "https://www.kabum.com.br/produto/95566/mouse-gamer-hyperx-pulsefire-surge-rgb-16000-dpi-hx-mc002b",
"value": 169.89
},
"totalValue": 7879.911
},
{
"id": 488,
"cpu": {
"id": 490,
"title": "Processador AMD Ryzen 5 5600X",
"description": "Processador AMD Ryzen 5 5600X, 3.7GHz (4.6GHz Max Turbo), Cache 35MB, 6 Núcleos, 12 Threads, AM4 - 100-100000065BOX",
"url": "https://www.kabum.com.br/produto/129451/processador-amd-ryzen-5-5600x-3-7ghz-4-6ghz-max-turbo-cache-35mb-6-nucleos-12-threads-am4-100-100000065box",
"value": 1199.99
},
"motherboard": {
"id": 492,
"title": "Placa-Mãe Gigabyte B550M",
"description": "Placa-Mãe Gigabyte B550M Aorus Elite, AMD AM4, Micro ATX, DDR4",
"url": "https://www.kabum.com.br/produto/114781/placa-mae-gigabyte-b550m-aorus-elite-amd-am4-micro-atx-ddr4",
"value": 849.99
},
"gpus": [
{
"id": 496,
"title": "GTX 1660 Super",
"description": "Placa de Vídeo GTX 1660 Super Twin Fan Zotac Gaming NVIDIA GeForce, 6GB, GDDR6 - ZT-T16620F-10L",
"url": "https://www.kabum.com.br/produto/110396/placa-de-video-gtx-1660-super-twin-fan-zotac-gaming-nvidia-geforce-6gb-gddr6-zt-t16620f-10l",
"value": 1299.99
}
],
"hds": [
{
"id": 497,
"title": "HD Seagate 2TB",
"description": "HD Seagate 2TB BarraCuda, 3.5', SATA - ST2000DM008",
"url": "https://www.kabum.com.br/produto/100916/hd-seagate-2tb-barracuda-3-5-sata-st2000dm008",
"value": 299.99
}
],
"ssds": [
{
"id": 501,
"title": "SSD 512 GB",
"description": "SSD 512 GB XPG S41 TUF, M.2 PCIe, Leitura: 3500MB/s e Gravação: 2400MB/s - AGAMMIXS41-512G-C",
"url": "https://www.kabum.com.br/produto/127700/ssd-512-gb-xpg-s41-tuf-m-2-pcie-leitura-3500mb-s-e-gravacao-2400mb-s-agammixs41-512g-c",
"value": 409.99
}
],
"rams": [
{
"id": 499,
"title": "Memoria, Ram 8, Gb",
"description": "Memoria, Ram 8, Gb, Xpg, D60g, 3200 Mhz, Rgb, Ddr4, Ax4u320088g16ast60.",
"url": "https://www.kabum.com.br/produto/219915/memoria-ram-8-gb-xpg-d60g-3200-mhz-rgb-ddr4-ax4u320088g16ast60-",
"value": 390.06
},
{
"id": 500,
"title": "Memoria, Ram 8, Gb",
"description": "Memoria, Ram 8, Gb, Xpg, D60g, 3200 Mhz, Rgb, Ddr4, Ax4u320088g16ast60.",
"url": "https://www.kabum.com.br/produto/219915/memoria-ram-8-gb-xpg-d60g-3200-mhz-rgb-ddr4-ax4u320088g16ast60-",
"value": 390.06
}
],
"fans": [
{
"id": 495,
"title": "Cooler Fan Rise Mode Energy",
"description": "Cooler Fan Rise Mode Energy, 3 Unidades, 120mm, ARGB, Preto - FN-02-RGB-5V",
"url": "https://www.kabum.com.br/produto/153647/cooler-fan-rise-mode-energy-3-unidades-120mm-argb-preto-fn-02-rgb-5v",
"value": 129.99
}
],
"powerSupply": {
"id": 494,
"title": "Fonte Corsair CV550",
"description": "Fonte Corsair CV550, 550W, 80 Plus Bronze - CP-9020210-BR",
"url": "https://www.kabum.com.br/produto/108257/fonte-corsair-cv550-550w-80-plus-bronze-cp-9020210-br",
"value": 359.99
},
"cabinet": {
"id": 489,
"title": "Gabinete Gamer Corsair Carbide Series Spec Delta",
"description": "Gabinete Gamer Corsair Carbide Series Spec Delta, Mid-Tower, RGB, Lateral em Vidro Temperado, Preto, CC-9011166-WW",
"url": "https://www.kabum.com.br/produto/100004/gabinete-gamer-corsair-carbide-series-spec-delta-mid-tower-rgb-lateral-em-vidro-temperado-preto-cc-9011166-ww",
"value": 399.99
},
"monitors": [
{
"id": 498,
"title": "Monitor Gamer LG UltraGear 32 LED",
"description": "Monitor Gamer LG UltraGear 32 LED, 165 Hz, QHD, 1ms, HDMI/DisplayPort, 95% sRGB, FreeSync Premium, HDR 10, VESA, Preto - 32GN600-B",
"url": "https://www.kabum.com.br/produto/364835/monitor-gamer-lg-ultragear-32-led-165-hz-qhd-1ms-hdmi-displayport-95-srgb-freesync-premium-hdr-10-vesa-preto-32gn600-b",
"value": 1899.99
}
],
"keyboard": {
"id": 491,
"title": "Teclado Mecânico Gamer HyperX Alloy Origins Core",
"description": "Teclado Mecânico Gamer HyperX Alloy Origins Core, RGB, Switch HyperX Red, ABNT2 - HX-KB7RDX-BR",
"url": "https://www.kabum.com.br/produto/105009/teclado-mecanico-gamer-hyperx-alloy-origins-core-rgb-switch-hyperx-red-abnt2-hx-kb7rdx-br",
"value": 419.99
},
"mouse": {
"id": 493,
"title": "Mouse Gamer HyperX Pulsefire Surge",
"description": "Mouse Gamer HyperX Pulsefire Surge RGB 16000 DPI - HX-MC002B",
"url": "https://www.kabum.com.br/produto/95566/mouse-gamer-hyperx-pulsefire-surge-rgb-16000-dpi-hx-mc002b",
"value": 169.89
},
"totalValue": 8219.911
}
]

Podemos observar que existem dois setups, vamos escolher o primeiro para modificar, seu id é 474. Esse será o novo setup passado no corpo da requisição PUT:

{
"cpu": {
"title": "Processador AMD Ryzen 7 5800X",
"description": "Processador AMD Ryzen 7 5800X, 3.8GHz (4.7GHz Max Turbo), Cache 36MB, Octa Core, 16 Threads, AM4 - 100-100000063WOF",
"url": "https://www.kabum.com.br/produto/129459/processador-amd-ryzen-7-5800x-3-8ghz-4-7ghz-max-turbo-cache-36mb-octa-core-16-threads-am4-100-100000063wof",
"value": 1899.99
},
"motherboard": {
"title": "Placa Mãe B650M-A MSI PRO Wi-Fi",
"description": "Placa Mãe B650M-A MSI PRO Wi-Fi, AMD AM5, mATX, DDR5 - PRO B650M-A WIFI",
"url": "https://www.kabum.com.br/produto/392613/placa-mae-b650m-a-msi-pro-wi-fi-amd-am5-matx-ddr5-pro-b650m-a-wifi",
"value": 1999.99
},
"gpus": [
{
"title": "GTX 1660 Super",
"description": "Placa de Vídeo GTX 1660 Super Twin Fan Zotac Gaming NVIDIA GeForce, 6GB, GDDR6 - ZT-T16620F-10L",
"url": "https://www.kabum.com.br/produto/110396/placa-de-video-gtx-1660-super-twin-fan-zotac-gaming-nvidia-geforce-6gb-gddr6-zt-t16620f-10l",
"value": 1299.99
}
],
"hds": [
{
"title": "HD Seagate 2TB",
"description": "HD Seagate 2TB BarraCuda, 3.5', SATA - ST2000DM008",
"url": "https://www.kabum.com.br/produto/100916/hd-seagate-2tb-barracuda-3-5-sata-st2000dm008",
"value": 299.99
}
],
"ssds": [
{
"title": "SSD 512 GB",
"description": "SSD 512 GB XPG S41 TUF, M.2 PCIe, Leitura: 3500MB/s e Gravação: 2400MB/s - AGAMMIXS41-512G-C",
"url": "https://www.kabum.com.br/produto/127700/ssd-512-gb-xpg-s41-tuf-m-2-pcie-leitura-3500mb-s-e-gravacao-2400mb-s-agammixs41-512g-c",
"value": 409.99
}
],
"rams": [
{
"title": "Memoria, Ram 8, Gb",
"description": "Memoria, Ram 8, Gb, Xpg, D60g, 3200 Mhz, Rgb, Ddr4, Ax4u320088g16ast60.",
"url": "https://www.kabum.com.br/produto/219915/memoria-ram-8-gb-xpg-d60g-3200-mhz-rgb-ddr4-ax4u320088g16ast60-",
"value": 390.06
},
{
"title": "Memoria, Ram 8, Gb",
"description": "Memoria, Ram 8, Gb, Xpg, D60g, 3200 Mhz, Rgb, Ddr4, Ax4u320088g16ast60.",
"url": "https://www.kabum.com.br/produto/219915/memoria-ram-8-gb-xpg-d60g-3200-mhz-rgb-ddr4-ax4u320088g16ast60-",
"value": 390.06
}
],
"fans": [
{
"title": "Cooler Fan Rise Mode Energy",
"description": "Cooler Fan Rise Mode Energy, 3 Unidades, 120mm, ARGB, Preto - FN-02-RGB-5V",
"url": "https://www.kabum.com.br/produto/153647/cooler-fan-rise-mode-energy-3-unidades-120mm-argb-preto-fn-02-rgb-5v",
"value": 129.99
}
],
"powerSupply": {
"title": "Fonte Corsair CV550",
"description": "Fonte Corsair CV550, 550W, 80 Plus Bronze - CP-9020210-BR",
"url": "https://www.kabum.com.br/produto/108257/fonte-corsair-cv550-550w-80-plus-bronze-cp-9020210-br",
"value": 359.99
},
"cabinet": {
"title": "Gabinete Gamer Corsair Carbide Series Spec Delta",
"description": "Gabinete Gamer Corsair Carbide Series Spec Delta, Mid-Tower, RGB, Lateral em Vidro Temperado, Preto, CC-9011166-WW",
"url": "https://www.kabum.com.br/produto/100004/gabinete-gamer-corsair-carbide-series-spec-delta-mid-tower-rgb-lateral-em-vidro-temperado-preto-cc-9011166-ww",
"value": 399.99
},
"monitors": [
{
"title": "Monitor Gamer LG UltraGear 32 LED",
"description": "Monitor Gamer LG UltraGear 32 LED, 165 Hz, QHD, 1ms, HDMI/DisplayPort, 95% sRGB, FreeSync Premium, HDR 10, VESA, Preto - 32GN600-B",
"url": "https://www.kabum.com.br/produto/364835/monitor-gamer-lg-ultragear-32-led-165-hz-qhd-1ms-hdmi-displayport-95-srgb-freesync-premium-hdr-10-vesa-preto-32gn600-b",
"value": 1899.99
}
],
"keyboard": {
"title": "Teclado Mecânico Gamer HyperX Alloy Origins Core",
"description": "Teclado Mecânico Gamer HyperX Alloy Origins Core, RGB, Switch HyperX Red, ABNT2 - HX-KB7RDX-BR",
"url": "https://www.kabum.com.br/produto/105009/teclado-mecanico-gamer-hyperx-alloy-origins-core-rgb-switch-hyperx-red-abnt2-hx-kb7rdx-br",
"value": 419.99
},
"mouse": {
"title": "Mouse Gamer HyperX Pulsefire Surge",
"description": "Mouse Gamer HyperX Pulsefire Surge RGB 16000 DPI - HX-MC002B",
"url": "https://www.kabum.com.br/produto/95566/mouse-gamer-hyperx-pulsefire-surge-rgb-16000-dpi-hx-mc002b",
"value": 169.89
}
}

Apenas atualizamos alguns dados da cpu e da motherboard. Ao fazer a requisição, recebemos o seguinte resultado:

{
"id": 502,
"cpu": {
"id": 504,
"title": "Processador AMD Ryzen 7 5800X",
"description": "Processador AMD Ryzen 7 5800X, 3.8GHz (4.7GHz Max Turbo), Cache 36MB, Octa Core, 16 Threads, AM4 - 100-100000063WOF",
"url": "https://www.kabum.com.br/produto/129459/processador-amd-ryzen-7-5800x-3-8ghz-4-7ghz-max-turbo-cache-36mb-octa-core-16-threads-am4-100-100000063wof",
"value": 1899.99
},
"motherboard": {
"id": 506,
"title": "Placa Mãe B650M-A MSI PRO Wi-Fi",
"description": "Placa Mãe B650M-A MSI PRO Wi-Fi, AMD AM5, mATX, DDR5 - PRO B650M-A WIFI",
"url": "https://www.kabum.com.br/produto/392613/placa-mae-b650m-a-msi-pro-wi-fi-amd-am5-matx-ddr5-pro-b650m-a-wifi",
"value": 1999.99
},
"gpus": [
{
"id": 510,
"title": "GTX 1660 Super",
"description": "Placa de Vídeo GTX 1660 Super Twin Fan Zotac Gaming NVIDIA GeForce, 6GB, GDDR6 - ZT-T16620F-10L",
"url": "https://www.kabum.com.br/produto/110396/placa-de-video-gtx-1660-super-twin-fan-zotac-gaming-nvidia-geforce-6gb-gddr6-zt-t16620f-10l",
"value": 1299.99
}
],
"hds": [
{
"id": 511,
"title": "HD Seagate 2TB",
"description": "HD Seagate 2TB BarraCuda, 3.5', SATA - ST2000DM008",
"url": "https://www.kabum.com.br/produto/100916/hd-seagate-2tb-barracuda-3-5-sata-st2000dm008",
"value": 299.99
}
],
"ssds": [
{
"id": 515,
"title": "SSD 512 GB",
"description": "SSD 512 GB XPG S41 TUF, M.2 PCIe, Leitura: 3500MB/s e Gravação: 2400MB/s - AGAMMIXS41-512G-C",
"url": "https://www.kabum.com.br/produto/127700/ssd-512-gb-xpg-s41-tuf-m-2-pcie-leitura-3500mb-s-e-gravacao-2400mb-s-agammixs41-512g-c",
"value": 409.99
}
],
"rams": [
{
"id": 513,
"title": "Memoria, Ram 8, Gb",
"description": "Memoria, Ram 8, Gb, Xpg, D60g, 3200 Mhz, Rgb, Ddr4, Ax4u320088g16ast60.",
"url": "https://www.kabum.com.br/produto/219915/memoria-ram-8-gb-xpg-d60g-3200-mhz-rgb-ddr4-ax4u320088g16ast60-",
"value": 390.06
},
{
"id": 514,
"title": "Memoria, Ram 8, Gb",
"description": "Memoria, Ram 8, Gb, Xpg, D60g, 3200 Mhz, Rgb, Ddr4, Ax4u320088g16ast60.",
"url": "https://www.kabum.com.br/produto/219915/memoria-ram-8-gb-xpg-d60g-3200-mhz-rgb-ddr4-ax4u320088g16ast60-",
"value": 390.06
}
],
"fans": [
{
"id": 509,
"title": "Cooler Fan Rise Mode Energy",
"description": "Cooler Fan Rise Mode Energy, 3 Unidades, 120mm, ARGB, Preto - FN-02-RGB-5V",
"url": "https://www.kabum.com.br/produto/153647/cooler-fan-rise-mode-energy-3-unidades-120mm-argb-preto-fn-02-rgb-5v",
"value": 129.99
}
],
"powerSupply": {
"id": 508,
"title": "Fonte Corsair CV550",
"description": "Fonte Corsair CV550, 550W, 80 Plus Bronze - CP-9020210-BR",
"url": "https://www.kabum.com.br/produto/108257/fonte-corsair-cv550-550w-80-plus-bronze-cp-9020210-br",
"value": 359.99
},
"cabinet": {
"id": 503,
"title": "Gabinete Gamer Corsair Carbide Series Spec Delta",
"description": "Gabinete Gamer Corsair Carbide Series Spec Delta, Mid-Tower, RGB, Lateral em Vidro Temperado, Preto, CC-9011166-WW",
"url": "https://www.kabum.com.br/produto/100004/gabinete-gamer-corsair-carbide-series-spec-delta-mid-tower-rgb-lateral-em-vidro-temperado-preto-cc-9011166-ww",
"value": 399.99
},
"monitors": [
{
"id": 512,
"title": "Monitor Gamer LG UltraGear 32 LED",
"description": "Monitor Gamer LG UltraGear 32 LED, 165 Hz, QHD, 1ms, HDMI/DisplayPort, 95% sRGB, FreeSync Premium, HDR 10, VESA, Preto - 32GN600-B",
"url": "https://www.kabum.com.br/produto/364835/monitor-gamer-lg-ultragear-32-led-165-hz-qhd-1ms-hdmi-displayport-95-srgb-freesync-premium-hdr-10-vesa-preto-32gn600-b",
"value": 1899.99
}
],
"keyboard": {
"id": 505,
"title": "Teclado Mecânico Gamer HyperX Alloy Origins Core",
"description": "Teclado Mecânico Gamer HyperX Alloy Origins Core, RGB, Switch HyperX Red, ABNT2 - HX-KB7RDX-BR",
"url": "https://www.kabum.com.br/produto/105009/teclado-mecanico-gamer-hyperx-alloy-origins-core-rgb-switch-hyperx-red-abnt2-hx-kb7rdx-br",
"value": 419.99
},
"mouse": {
"id": 507,
"title": "Mouse Gamer HyperX Pulsefire Surge",
"description": "Mouse Gamer HyperX Pulsefire Surge RGB 16000 DPI - HX-MC002B",
"url": "https://www.kabum.com.br/produto/95566/mouse-gamer-hyperx-pulsefire-surge-rgb-16000-dpi-hx-mc002b",
"value": 169.89
},
"totalValue": 10069.911
}

O setup foi atualizado, mas repare que os ids também foram, o que não deveria acontecer, já que ele deveria ser um identificador imutável, apenas de leitura. Isso é uma falha de segurança que trataremos no próximo post. Nosso método PUT está pronto por enquanto.

Função deleteSetup e deleteAllSetups

Nossa função para deletar um setup será tão simples quanto a de atualizar:

@DeleteMapping("{id}")
fun deleteSetup(@PathVariable id: Long) {
if (repository.existsById(id)) {
repository.deleteById(id)
}
}

Aqui também utilizamos uma notação chamada @DeleteMapping, que indica que a função irá mapear um método HTTP DELETE. Além disso, a função recebe um id como parâmetro que irá ficar no caminho da url. A lógica é bem simples: primeiro verificamos se existe um setup com esse id, caso exista, nós o deletamos.

Adicionalmente, vamos fazer uma função para deletar todos os setups:

@DeleteMapping()
fun deleteAllSetups() {
repository.deleteAll()
}

Bem simples, apenas utilizamos a função deleteAll() do repository.

Agora vamos testar as funções. Primeiro vamos usar GET para vermos quais setups estão salvos no banco de dados:

[
{
"id": 474,
"cpu": {
"id": 476,
"title": "Processador AMD Ryzen 5 5600X",
"description": "Processador AMD Ryzen 5 5600X, 3.7GHz (4.6GHz Max Turbo), Cache 35MB, 6 Núcleos, 12 Threads, AM4 - 100-100000065BOX",
"url": "https://www.kabum.com.br/produto/129451/processador-amd-ryzen-5-5600x-3-7ghz-4-6ghz-max-turbo-cache-35mb-6-nucleos-12-threads-am4-100-100000065box",
"value": 1199.99
},
"motherboard": {
"id": 478,
"title": "Placa-Mãe Gigabyte B550M",
"description": "Placa-Mãe Gigabyte B550M Aorus Elite, AMD AM4, Micro ATX, DDR4",
"url": "https://www.kabum.com.br/produto/114781/placa-mae-gigabyte-b550m-aorus-elite-amd-am4-micro-atx-ddr4",
"value": 849.99
},
"gpus": [
{
"id": 482,
"title": "GTX 1660 Super",
"description": "Placa de Vídeo GTX 1660 Super Twin Fan Zotac Gaming NVIDIA GeForce, 6GB, GDDR6 - ZT-T16620F-10L",
"url": "https://www.kabum.com.br/produto/110396/placa-de-video-gtx-1660-super-twin-fan-zotac-gaming-nvidia-geforce-6gb-gddr6-zt-t16620f-10l",
"value": 1299.99
}
],
"hds": [
{
"id": 483,
"title": "HD Seagate 2TB",
"description": "HD Seagate 2TB BarraCuda, 3.5', SATA - ST2000DM008",
"url": "https://www.kabum.com.br/produto/100916/hd-seagate-2tb-barracuda-3-5-sata-st2000dm008",
"value": 299.99
}
],
"ssds": [
{
"id": 487,
"title": "SSD 512 GB",
"description": "SSD 512 GB XPG S41 TUF, M.2 PCIe, Leitura: 3500MB/s e Gravação: 2400MB/s - AGAMMIXS41-512G-C",
"url": "https://www.kabum.com.br/produto/127700/ssd-512-gb-xpg-s41-tuf-m-2-pcie-leitura-3500mb-s-e-gravacao-2400mb-s-agammixs41-512g-c",
"value": 409.99
}
],
"rams": [
{
"id": 485,
"title": "Memoria, Ram 8, Gb",
"description": "Memoria, Ram 8, Gb, Xpg, D60g, 3200 Mhz, Rgb, Ddr4, Ax4u320088g16ast60.",
"url": "https://www.kabum.com.br/produto/219915/memoria-ram-8-gb-xpg-d60g-3200-mhz-rgb-ddr4-ax4u320088g16ast60-",
"value": 390.06
},
{
"id": 486,
"title": "Memoria, Ram 8, Gb",
"description": "Memoria, Ram 8, Gb, Xpg, D60g, 3200 Mhz, Rgb, Ddr4, Ax4u320088g16ast60.",
"url": "https://www.kabum.com.br/produto/219915/memoria-ram-8-gb-xpg-d60g-3200-mhz-rgb-ddr4-ax4u320088g16ast60-",
"value": 390.06
}
],
"fans": [
{
"id": 481,
"title": "Cooler Fan Rise Mode Energy",
"description": "Cooler Fan Rise Mode Energy, 3 Unidades, 120mm, ARGB, Preto - FN-02-RGB-5V",
"url": "https://www.kabum.com.br/produto/153647/cooler-fan-rise-mode-energy-3-unidades-120mm-argb-preto-fn-02-rgb-5v",
"value": 129.99
}
],
"powerSupply": {
"id": 480,
"title": "Fonte Corsair CV550",
"description": "Fonte Corsair CV550, 550W, 80 Plus Bronze - CP-9020210-BR",
"url": "https://www.kabum.com.br/produto/108257/fonte-corsair-cv550-550w-80-plus-bronze-cp-9020210-br",
"value": 359.99
},
"cabinet": {
"id": 475,
"title": "Gabinete Gamer Corsair Carbide Series Spec Delta",
"description": "Gabinete Gamer Corsair Carbide Series Spec Delta, Mid-Tower, RGB, Lateral em Vidro Temperado, Preto, CC-9011166-WW",
"url": "https://www.kabum.com.br/produto/100004/gabinete-gamer-corsair-carbide-series-spec-delta-mid-tower-rgb-lateral-em-vidro-temperado-preto-cc-9011166-ww",
"value": 399.99
},
"monitors": [
{
"id": 484,
"title": "Monitor Gamer LG Ultra Gear 27 Full HD",
"description": "Monitor Gamer LG Ultra Gear 27 Full HD, 144 Hz, 1ms, IPS, HDMI e DisplayPort, sRGB 99%, HDR10, FreeSync, VESA, Altura Ajustável - 27GL650F-B",
"url": "https://www.kabum.com.br/produto/380514/monitor-gamer-lg-ultra-gear-27-full-hd-144-hz-1ms-ips-hdmi-e-displayport-srgb-99-hdr10-freesync-vesa-altura-ajustavel-27gl650f-b",
"value": 1559.99
}
],
"keyboard": {
"id": 477,
"title": "Teclado Mecânico Gamer HyperX Alloy Origins Core",
"description": "Teclado Mecânico Gamer HyperX Alloy Origins Core, RGB, Switch HyperX Red, ABNT2 - HX-KB7RDX-BR",
"url": "https://www.kabum.com.br/produto/105009/teclado-mecanico-gamer-hyperx-alloy-origins-core-rgb-switch-hyperx-red-abnt2-hx-kb7rdx-br",
"value": 419.99
},
"mouse": {
"id": 479,
"title": "Mouse Gamer HyperX Pulsefire Surge",
"description": "Mouse Gamer HyperX Pulsefire Surge RGB 16000 DPI - HX-MC002B",
"url": "https://www.kabum.com.br/produto/95566/mouse-gamer-hyperx-pulsefire-surge-rgb-16000-dpi-hx-mc002b",
"value": 169.89
},
"totalValue": 7879.911
},
{
"id": 488,
"cpu": {
"id": 490,
"title": "Processador AMD Ryzen 5 5600X",
"description": "Processador AMD Ryzen 5 5600X, 3.7GHz (4.6GHz Max Turbo), Cache 35MB, 6 Núcleos, 12 Threads, AM4 - 100-100000065BOX",
"url": "https://www.kabum.com.br/produto/129451/processador-amd-ryzen-5-5600x-3-7ghz-4-6ghz-max-turbo-cache-35mb-6-nucleos-12-threads-am4-100-100000065box",
"value": 1199.99
},
"motherboard": {
"id": 492,
"title": "Placa-Mãe Gigabyte B550M",
"description": "Placa-Mãe Gigabyte B550M Aorus Elite, AMD AM4, Micro ATX, DDR4",
"url": "https://www.kabum.com.br/produto/114781/placa-mae-gigabyte-b550m-aorus-elite-amd-am4-micro-atx-ddr4",
"value": 849.99
},
"gpus": [
{
"id": 496,
"title": "GTX 1660 Super",
"description": "Placa de Vídeo GTX 1660 Super Twin Fan Zotac Gaming NVIDIA GeForce, 6GB, GDDR6 - ZT-T16620F-10L",
"url": "https://www.kabum.com.br/produto/110396/placa-de-video-gtx-1660-super-twin-fan-zotac-gaming-nvidia-geforce-6gb-gddr6-zt-t16620f-10l",
"value": 1299.99
}
],
"hds": [
{
"id": 497,
"title": "HD Seagate 2TB",
"description": "HD Seagate 2TB BarraCuda, 3.5', SATA - ST2000DM008",
"url": "https://www.kabum.com.br/produto/100916/hd-seagate-2tb-barracuda-3-5-sata-st2000dm008",
"value": 299.99
}
],
"ssds": [
{
"id": 501,
"title": "SSD 512 GB",
"description": "SSD 512 GB XPG S41 TUF, M.2 PCIe, Leitura: 3500MB/s e Gravação: 2400MB/s - AGAMMIXS41-512G-C",
"url": "https://www.kabum.com.br/produto/127700/ssd-512-gb-xpg-s41-tuf-m-2-pcie-leitura-3500mb-s-e-gravacao-2400mb-s-agammixs41-512g-c",
"value": 409.99
}
],
"rams": [
{
"id": 499,
"title": "Memoria, Ram 8, Gb",
"description": "Memoria, Ram 8, Gb, Xpg, D60g, 3200 Mhz, Rgb, Ddr4, Ax4u320088g16ast60.",
"url": "https://www.kabum.com.br/produto/219915/memoria-ram-8-gb-xpg-d60g-3200-mhz-rgb-ddr4-ax4u320088g16ast60-",
"value": 390.06
},
{
"id": 500,
"title": "Memoria, Ram 8, Gb",
"description": "Memoria, Ram 8, Gb, Xpg, D60g, 3200 Mhz, Rgb, Ddr4, Ax4u320088g16ast60.",
"url": "https://www.kabum.com.br/produto/219915/memoria-ram-8-gb-xpg-d60g-3200-mhz-rgb-ddr4-ax4u320088g16ast60-",
"value": 390.06
}
],
"fans": [
{
"id": 495,
"title": "Cooler Fan Rise Mode Energy",
"description": "Cooler Fan Rise Mode Energy, 3 Unidades, 120mm, ARGB, Preto - FN-02-RGB-5V",
"url": "https://www.kabum.com.br/produto/153647/cooler-fan-rise-mode-energy-3-unidades-120mm-argb-preto-fn-02-rgb-5v",
"value": 129.99
}
],
"powerSupply": {
"id": 494,
"title": "Fonte Corsair CV550",
"description": "Fonte Corsair CV550, 550W, 80 Plus Bronze - CP-9020210-BR",
"url": "https://www.kabum.com.br/produto/108257/fonte-corsair-cv550-550w-80-plus-bronze-cp-9020210-br",
"value": 359.99
},
"cabinet": {
"id": 489,
"title": "Gabinete Gamer Corsair Carbide Series Spec Delta",
"description": "Gabinete Gamer Corsair Carbide Series Spec Delta, Mid-Tower, RGB, Lateral em Vidro Temperado, Preto, CC-9011166-WW",
"url": "https://www.kabum.com.br/produto/100004/gabinete-gamer-corsair-carbide-series-spec-delta-mid-tower-rgb-lateral-em-vidro-temperado-preto-cc-9011166-ww",
"value": 399.99
},
"monitors": [
{
"id": 498,
"title": "Monitor Gamer LG UltraGear 32 LED",
"description": "Monitor Gamer LG UltraGear 32 LED, 165 Hz, QHD, 1ms, HDMI/DisplayPort, 95% sRGB, FreeSync Premium, HDR 10, VESA, Preto - 32GN600-B",
"url": "https://www.kabum.com.br/produto/364835/monitor-gamer-lg-ultragear-32-led-165-hz-qhd-1ms-hdmi-displayport-95-srgb-freesync-premium-hdr-10-vesa-preto-32gn600-b",
"value": 1899.99
}
],
"keyboard": {
"id": 491,
"title": "Teclado Mecânico Gamer HyperX Alloy Origins Core",
"description": "Teclado Mecânico Gamer HyperX Alloy Origins Core, RGB, Switch HyperX Red, ABNT2 - HX-KB7RDX-BR",
"url": "https://www.kabum.com.br/produto/105009/teclado-mecanico-gamer-hyperx-alloy-origins-core-rgb-switch-hyperx-red-abnt2-hx-kb7rdx-br",
"value": 419.99
},
"mouse": {
"id": 493,
"title": "Mouse Gamer HyperX Pulsefire Surge",
"description": "Mouse Gamer HyperX Pulsefire Surge RGB 16000 DPI - HX-MC002B",
"url": "https://www.kabum.com.br/produto/95566/mouse-gamer-hyperx-pulsefire-surge-rgb-16000-dpi-hx-mc002b",
"value": 169.89
},
"totalValue": 8219.911
},
{
"id": 502,
"cpu": {
"id": 504,
"title": "Processador AMD Ryzen 7 5800X",
"description": "Processador AMD Ryzen 7 5800X, 3.8GHz (4.7GHz Max Turbo), Cache 36MB, Octa Core, 16 Threads, AM4 - 100-100000063WOF",
"url": "https://www.kabum.com.br/produto/129459/processador-amd-ryzen-7-5800x-3-8ghz-4-7ghz-max-turbo-cache-36mb-octa-core-16-threads-am4-100-100000063wof",
"value": 1899.99
},
"motherboard": {
"id": 506,
"title": "Placa Mãe B650M-A MSI PRO Wi-Fi",
"description": "Placa Mãe B650M-A MSI PRO Wi-Fi, AMD AM5, mATX, DDR5 - PRO B650M-A WIFI",
"url": "https://www.kabum.com.br/produto/392613/placa-mae-b650m-a-msi-pro-wi-fi-amd-am5-matx-ddr5-pro-b650m-a-wifi",
"value": 1999.99
},
"gpus": [
{
"id": 510,
"title": "GTX 1660 Super",
"description": "Placa de Vídeo GTX 1660 Super Twin Fan Zotac Gaming NVIDIA GeForce, 6GB, GDDR6 - ZT-T16620F-10L",
"url": "https://www.kabum.com.br/produto/110396/placa-de-video-gtx-1660-super-twin-fan-zotac-gaming-nvidia-geforce-6gb-gddr6-zt-t16620f-10l",
"value": 1299.99
}
],
"hds": [
{
"id": 511,
"title": "HD Seagate 2TB",
"description": "HD Seagate 2TB BarraCuda, 3.5', SATA - ST2000DM008",
"url": "https://www.kabum.com.br/produto/100916/hd-seagate-2tb-barracuda-3-5-sata-st2000dm008",
"value": 299.99
}
],
"ssds": [
{
"id": 515,
"title": "SSD 512 GB",
"description": "SSD 512 GB XPG S41 TUF, M.2 PCIe, Leitura: 3500MB/s e Gravação: 2400MB/s - AGAMMIXS41-512G-C",
"url": "https://www.kabum.com.br/produto/127700/ssd-512-gb-xpg-s41-tuf-m-2-pcie-leitura-3500mb-s-e-gravacao-2400mb-s-agammixs41-512g-c",
"value": 409.99
}
],
"rams": [
{
"id": 513,
"title": "Memoria, Ram 8, Gb",
"description": "Memoria, Ram 8, Gb, Xpg, D60g, 3200 Mhz, Rgb, Ddr4, Ax4u320088g16ast60.",
"url": "https://www.kabum.com.br/produto/219915/memoria-ram-8-gb-xpg-d60g-3200-mhz-rgb-ddr4-ax4u320088g16ast60-",
"value": 390.06
},
{
"id": 514,
"title": "Memoria, Ram 8, Gb",
"description": "Memoria, Ram 8, Gb, Xpg, D60g, 3200 Mhz, Rgb, Ddr4, Ax4u320088g16ast60.",
"url": "https://www.kabum.com.br/produto/219915/memoria-ram-8-gb-xpg-d60g-3200-mhz-rgb-ddr4-ax4u320088g16ast60-",
"value": 390.06
}
],
"fans": [
{
"id": 509,
"title": "Cooler Fan Rise Mode Energy",
"description": "Cooler Fan Rise Mode Energy, 3 Unidades, 120mm, ARGB, Preto - FN-02-RGB-5V",
"url": "https://www.kabum.com.br/produto/153647/cooler-fan-rise-mode-energy-3-unidades-120mm-argb-preto-fn-02-rgb-5v",
"value": 129.99
}
],
"powerSupply": {
"id": 508,
"title": "Fonte Corsair CV550",
"description": "Fonte Corsair CV550, 550W, 80 Plus Bronze - CP-9020210-BR",
"url": "https://www.kabum.com.br/produto/108257/fonte-corsair-cv550-550w-80-plus-bronze-cp-9020210-br",
"value": 359.99
},
"cabinet": {
"id": 503,
"title": "Gabinete Gamer Corsair Carbide Series Spec Delta",
"description": "Gabinete Gamer Corsair Carbide Series Spec Delta, Mid-Tower, RGB, Lateral em Vidro Temperado, Preto, CC-9011166-WW",
"url": "https://www.kabum.com.br/produto/100004/gabinete-gamer-corsair-carbide-series-spec-delta-mid-tower-rgb-lateral-em-vidro-temperado-preto-cc-9011166-ww",
"value": 399.99
},
"monitors": [
{
"id": 512,
"title": "Monitor Gamer LG UltraGear 32 LED",
"description": "Monitor Gamer LG UltraGear 32 LED, 165 Hz, QHD, 1ms, HDMI/DisplayPort, 95% sRGB, FreeSync Premium, HDR 10, VESA, Preto - 32GN600-B",
"url": "https://www.kabum.com.br/produto/364835/monitor-gamer-lg-ultragear-32-led-165-hz-qhd-1ms-hdmi-displayport-95-srgb-freesync-premium-hdr-10-vesa-preto-32gn600-b",
"value": 1899.99
}
],
"keyboard": {
"id": 505,
"title": "Teclado Mecânico Gamer HyperX Alloy Origins Core",
"description": "Teclado Mecânico Gamer HyperX Alloy Origins Core, RGB, Switch HyperX Red, ABNT2 - HX-KB7RDX-BR",
"url": "https://www.kabum.com.br/produto/105009/teclado-mecanico-gamer-hyperx-alloy-origins-core-rgb-switch-hyperx-red-abnt2-hx-kb7rdx-br",
"value": 419.99
},
"mouse": {
"id": 507,
"title": "Mouse Gamer HyperX Pulsefire Surge",
"description": "Mouse Gamer HyperX Pulsefire Surge RGB 16000 DPI - HX-MC002B",
"url": "https://www.kabum.com.br/produto/95566/mouse-gamer-hyperx-pulsefire-surge-rgb-16000-dpi-hx-mc002b",
"value": 169.89
},
"totalValue": 10069.911
}
]

Podemos ver que existem três setups com os seguintes ids: 474, 488 e 502. Vamos usar a função deleteSetup() para deletar o setup com id 474 fazendo uma requisição DELETE por meio do postman.

Após isso, vamos usar GET de novo para ver como ficou o banco de dados:

[
{
"id": 488,
"cpu": {
"id": 490,
"title": "Processador AMD Ryzen 5 5600X",
"description": "Processador AMD Ryzen 5 5600X, 3.7GHz (4.6GHz Max Turbo), Cache 35MB, 6 Núcleos, 12 Threads, AM4 - 100-100000065BOX",
"url": "https://www.kabum.com.br/produto/129451/processador-amd-ryzen-5-5600x-3-7ghz-4-6ghz-max-turbo-cache-35mb-6-nucleos-12-threads-am4-100-100000065box",
"value": 1199.99
},
"motherboard": {
"id": 492,
"title": "Placa-Mãe Gigabyte B550M",
"description": "Placa-Mãe Gigabyte B550M Aorus Elite, AMD AM4, Micro ATX, DDR4",
"url": "https://www.kabum.com.br/produto/114781/placa-mae-gigabyte-b550m-aorus-elite-amd-am4-micro-atx-ddr4",
"value": 849.99
},
"gpus": [
{
"id": 496,
"title": "GTX 1660 Super",
"description": "Placa de Vídeo GTX 1660 Super Twin Fan Zotac Gaming NVIDIA GeForce, 6GB, GDDR6 - ZT-T16620F-10L",
"url": "https://www.kabum.com.br/produto/110396/placa-de-video-gtx-1660-super-twin-fan-zotac-gaming-nvidia-geforce-6gb-gddr6-zt-t16620f-10l",
"value": 1299.99
}
],
"hds": [
{
"id": 497,
"title": "HD Seagate 2TB",
"description": "HD Seagate 2TB BarraCuda, 3.5', SATA - ST2000DM008",
"url": "https://www.kabum.com.br/produto/100916/hd-seagate-2tb-barracuda-3-5-sata-st2000dm008",
"value": 299.99
}
],
"ssds": [
{
"id": 501,
"title": "SSD 512 GB",
"description": "SSD 512 GB XPG S41 TUF, M.2 PCIe, Leitura: 3500MB/s e Gravação: 2400MB/s - AGAMMIXS41-512G-C",
"url": "https://www.kabum.com.br/produto/127700/ssd-512-gb-xpg-s41-tuf-m-2-pcie-leitura-3500mb-s-e-gravacao-2400mb-s-agammixs41-512g-c",
"value": 409.99
}
],
"rams": [
{
"id": 499,
"title": "Memoria, Ram 8, Gb",
"description": "Memoria, Ram 8, Gb, Xpg, D60g, 3200 Mhz, Rgb, Ddr4, Ax4u320088g16ast60.",
"url": "https://www.kabum.com.br/produto/219915/memoria-ram-8-gb-xpg-d60g-3200-mhz-rgb-ddr4-ax4u320088g16ast60-",
"value": 390.06
},
{
"id": 500,
"title": "Memoria, Ram 8, Gb",
"description": "Memoria, Ram 8, Gb, Xpg, D60g, 3200 Mhz, Rgb, Ddr4, Ax4u320088g16ast60.",
"url": "https://www.kabum.com.br/produto/219915/memoria-ram-8-gb-xpg-d60g-3200-mhz-rgb-ddr4-ax4u320088g16ast60-",
"value": 390.06
}
],
"fans": [
{
"id": 495,
"title": "Cooler Fan Rise Mode Energy",
"description": "Cooler Fan Rise Mode Energy, 3 Unidades, 120mm, ARGB, Preto - FN-02-RGB-5V",
"url": "https://www.kabum.com.br/produto/153647/cooler-fan-rise-mode-energy-3-unidades-120mm-argb-preto-fn-02-rgb-5v",
"value": 129.99
}
],
"powerSupply": {
"id": 494,
"title": "Fonte Corsair CV550",
"description": "Fonte Corsair CV550, 550W, 80 Plus Bronze - CP-9020210-BR",
"url": "https://www.kabum.com.br/produto/108257/fonte-corsair-cv550-550w-80-plus-bronze-cp-9020210-br",
"value": 359.99
},
"cabinet": {
"id": 489,
"title": "Gabinete Gamer Corsair Carbide Series Spec Delta",
"description": "Gabinete Gamer Corsair Carbide Series Spec Delta, Mid-Tower, RGB, Lateral em Vidro Temperado, Preto, CC-9011166-WW",
"url": "https://www.kabum.com.br/produto/100004/gabinete-gamer-corsair-carbide-series-spec-delta-mid-tower-rgb-lateral-em-vidro-temperado-preto-cc-9011166-ww",
"value": 399.99
},
"monitors": [
{
"id": 498,
"title": "Monitor Gamer LG UltraGear 32 LED",
"description": "Monitor Gamer LG UltraGear 32 LED, 165 Hz, QHD, 1ms, HDMI/DisplayPort, 95% sRGB, FreeSync Premium, HDR 10, VESA, Preto - 32GN600-B",
"url": "https://www.kabum.com.br/produto/364835/monitor-gamer-lg-ultragear-32-led-165-hz-qhd-1ms-hdmi-displayport-95-srgb-freesync-premium-hdr-10-vesa-preto-32gn600-b",
"value": 1899.99
}
],
"keyboard": {
"id": 491,
"title": "Teclado Mecânico Gamer HyperX Alloy Origins Core",
"description": "Teclado Mecânico Gamer HyperX Alloy Origins Core, RGB, Switch HyperX Red, ABNT2 - HX-KB7RDX-BR",
"url": "https://www.kabum.com.br/produto/105009/teclado-mecanico-gamer-hyperx-alloy-origins-core-rgb-switch-hyperx-red-abnt2-hx-kb7rdx-br",
"value": 419.99
},
"mouse": {
"id": 493,
"title": "Mouse Gamer HyperX Pulsefire Surge",
"description": "Mouse Gamer HyperX Pulsefire Surge RGB 16000 DPI - HX-MC002B",
"url": "https://www.kabum.com.br/produto/95566/mouse-gamer-hyperx-pulsefire-surge-rgb-16000-dpi-hx-mc002b",
"value": 169.89
},
"totalValue": 8219.911
},
{
"id": 502,
"cpu": {
"id": 504,
"title": "Processador AMD Ryzen 7 5800X",
"description": "Processador AMD Ryzen 7 5800X, 3.8GHz (4.7GHz Max Turbo), Cache 36MB, Octa Core, 16 Threads, AM4 - 100-100000063WOF",
"url": "https://www.kabum.com.br/produto/129459/processador-amd-ryzen-7-5800x-3-8ghz-4-7ghz-max-turbo-cache-36mb-octa-core-16-threads-am4-100-100000063wof",
"value": 1899.99
},
"motherboard": {
"id": 506,
"title": "Placa Mãe B650M-A MSI PRO Wi-Fi",
"description": "Placa Mãe B650M-A MSI PRO Wi-Fi, AMD AM5, mATX, DDR5 - PRO B650M-A WIFI",
"url": "https://www.kabum.com.br/produto/392613/placa-mae-b650m-a-msi-pro-wi-fi-amd-am5-matx-ddr5-pro-b650m-a-wifi",
"value": 1999.99
},
"gpus": [
{
"id": 510,
"title": "GTX 1660 Super",
"description": "Placa de Vídeo GTX 1660 Super Twin Fan Zotac Gaming NVIDIA GeForce, 6GB, GDDR6 - ZT-T16620F-10L",
"url": "https://www.kabum.com.br/produto/110396/placa-de-video-gtx-1660-super-twin-fan-zotac-gaming-nvidia-geforce-6gb-gddr6-zt-t16620f-10l",
"value": 1299.99
}
],
"hds": [
{
"id": 511,
"title": "HD Seagate 2TB",
"description": "HD Seagate 2TB BarraCuda, 3.5', SATA - ST2000DM008",
"url": "https://www.kabum.com.br/produto/100916/hd-seagate-2tb-barracuda-3-5-sata-st2000dm008",
"value": 299.99
}
],
"ssds": [
{
"id": 515,
"title": "SSD 512 GB",
"description": "SSD 512 GB XPG S41 TUF, M.2 PCIe, Leitura: 3500MB/s e Gravação: 2400MB/s - AGAMMIXS41-512G-C",
"url": "https://www.kabum.com.br/produto/127700/ssd-512-gb-xpg-s41-tuf-m-2-pcie-leitura-3500mb-s-e-gravacao-2400mb-s-agammixs41-512g-c",
"value": 409.99
}
],
"rams": [
{
"id": 513,
"title": "Memoria, Ram 8, Gb",
"description": "Memoria, Ram 8, Gb, Xpg, D60g, 3200 Mhz, Rgb, Ddr4, Ax4u320088g16ast60.",
"url": "https://www.kabum.com.br/produto/219915/memoria-ram-8-gb-xpg-d60g-3200-mhz-rgb-ddr4-ax4u320088g16ast60-",
"value": 390.06
},
{
"id": 514,
"title": "Memoria, Ram 8, Gb",
"description": "Memoria, Ram 8, Gb, Xpg, D60g, 3200 Mhz, Rgb, Ddr4, Ax4u320088g16ast60.",
"url": "https://www.kabum.com.br/produto/219915/memoria-ram-8-gb-xpg-d60g-3200-mhz-rgb-ddr4-ax4u320088g16ast60-",
"value": 390.06
}
],
"fans": [
{
"id": 509,
"title": "Cooler Fan Rise Mode Energy",
"description": "Cooler Fan Rise Mode Energy, 3 Unidades, 120mm, ARGB, Preto - FN-02-RGB-5V",
"url": "https://www.kabum.com.br/produto/153647/cooler-fan-rise-mode-energy-3-unidades-120mm-argb-preto-fn-02-rgb-5v",
"value": 129.99
}
],
"powerSupply": {
"id": 508,
"title": "Fonte Corsair CV550",
"description": "Fonte Corsair CV550, 550W, 80 Plus Bronze - CP-9020210-BR",
"url": "https://www.kabum.com.br/produto/108257/fonte-corsair-cv550-550w-80-plus-bronze-cp-9020210-br",
"value": 359.99
},
"cabinet": {
"id": 503,
"title": "Gabinete Gamer Corsair Carbide Series Spec Delta",
"description": "Gabinete Gamer Corsair Carbide Series Spec Delta, Mid-Tower, RGB, Lateral em Vidro Temperado, Preto, CC-9011166-WW",
"url": "https://www.kabum.com.br/produto/100004/gabinete-gamer-corsair-carbide-series-spec-delta-mid-tower-rgb-lateral-em-vidro-temperado-preto-cc-9011166-ww",
"value": 399.99
},
"monitors": [
{
"id": 512,
"title": "Monitor Gamer LG UltraGear 32 LED",
"description": "Monitor Gamer LG UltraGear 32 LED, 165 Hz, QHD, 1ms, HDMI/DisplayPort, 95% sRGB, FreeSync Premium, HDR 10, VESA, Preto - 32GN600-B",
"url": "https://www.kabum.com.br/produto/364835/monitor-gamer-lg-ultragear-32-led-165-hz-qhd-1ms-hdmi-displayport-95-srgb-freesync-premium-hdr-10-vesa-preto-32gn600-b",
"value": 1899.99
}
],
"keyboard": {
"id": 505,
"title": "Teclado Mecânico Gamer HyperX Alloy Origins Core",
"description": "Teclado Mecânico Gamer HyperX Alloy Origins Core, RGB, Switch HyperX Red, ABNT2 - HX-KB7RDX-BR",
"url": "https://www.kabum.com.br/produto/105009/teclado-mecanico-gamer-hyperx-alloy-origins-core-rgb-switch-hyperx-red-abnt2-hx-kb7rdx-br",
"value": 419.99
},
"mouse": {
"id": 507,
"title": "Mouse Gamer HyperX Pulsefire Surge",
"description": "Mouse Gamer HyperX Pulsefire Surge RGB 16000 DPI - HX-MC002B",
"url": "https://www.kabum.com.br/produto/95566/mouse-gamer-hyperx-pulsefire-surge-rgb-16000-dpi-hx-mc002b",
"value": 169.89
},
"totalValue": 10069.911
}
]

A nossa função funcionou :), o setup foi deletado. Por fim, usaremos a função deleteAllSetups() para deletar todos os setups e usar GET de novo para obtermos a seguinte resposta:

[]

Recebemos um JSON vazio, nossa outra função também funcionou! E assim terminamos nosso post de hoje.

Próximo post

No próximo post vamos finalizar a primeira parte dessa nossa API simples melhorando sua segurança, impedindo que os ids dos setups e das peças sejam sobrescritos, por exemplo.

Repositório no github:

Post anterior:

--

--

Ronaldo Costa

I’m an Information Systems Graduating Student at the Amazonas State University. Currently, I’m working as an Android Software Developer Intern at iFood