Harjutus 1: Widgets

1. Loo töölauale kaust rest–api 
2. Käivita koodiredaktor (nt VS Code, WebStorm vms) ja ava see kaust projektina
3. Loo kausta fail index.js järgneva sisuga

Ülesanne, mis tuleb täita.

Code

Faili nimetus on “index.js”

Vidinatega töötamiseks kausta loomine

const express = require('express');
const cors = require('cors');
const app = express();

app.use(cors());        // Avoid CORS errors in browsers
app.use(express.json()) // Populate req.body

const widgets = [
    { id: 1, name: "Cizzbor", price: 29.99 },
    { id: 2, name: "Woowo", price: 26.99 },
    { id: 3, name: "Crazlinger", price: 59.99 },
]

app.get('/widgets', (req, res) => {
    res.send(widgets)
})

app.get('/widgets/:id', (req, res) => {
    if (typeof widgets[req.params.id - 1] === 'undefined') {
        return res.status(404).send({ error: "Widget not found" })
    }
    res.send(widgets[req.params.id - 1])
})


app.post('/widgets', (req, res) => {
    if (!req.body.name || !req.body.price) {
        return res.status(400).send({ error: 'One or all params are missing' })
    }
    let newWidget = {
        id: widgets.length + 1,
        price: req.body.price,
        name: req.body.name
    }
    widgets.push(newWidget)
    res.status(201).location('localhost:8080/widgets/' + (widgets.length - 1)).send(
        newWidget
    )
})

// Kustutamine
app.delete('/widgets/:id', (req, res) => {
    if (typeof widgets[req.params.id - 1] === 'undefined') {
        return res.status(404).send({"Widget not found"})
    }
    widgets.splice(req.params.id -1, 1)
    res.status(204).send()
})

app.listen(8080, () => {
    console.log(`API up at: http://localhost:8080`)
})

Käivita koodiredaktoris terminal ja seal järgnevad käsud:

Paigalda xh (kiire tööriist HTTP päringute saatmiseks), mille saad Githubist

https://github.com/ducaale/xh

Tippige see käsk xh installimiseks:

curl -sfL https://raw.githubusercontent.com/ducaale/xh/master/install.sh | sh

Loome GET’i päring andmete widget’i näitamiseks

Loome GET’i päring andmete widget’i näitamiseks valitud id

Loome POST’i päring widget’i loomiseks

Loome DELETE päring widget’i kustutamiseks

See ei toimi, aga ma ei tea, miks

Kokkuvõtte

Kõik kasutatud päringud töötavad ( GET, POST, DELETE )

Scroll to Top