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 id
s 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 id
s: 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 id
s dos setups e das peças sejam sobrescritos, por exemplo.
Repositório no github:
Post anterior:
Top comments (0)