Koodin review-harjoitus · 8 MIN
Tarkasta AI:n generoima muutos
Tutki lyhyttä endpointia. Päätä, mitä näyttöä tarvitset ennen muutoksen hyväksymistä.
Tilanne
AI-avustaja ehdottaa endpointia laskujen hakuun. Kirjautunut käyttäjä saa nähdä vain oman organisaationsa laskut. Tarkastat muutosta ennen julkaisua.
Tee näin
- Lue koodi ja sen selitys. Koodia ei tarvitse suorittaa.
- Valitse kaikki ennen hyväksymistä tarvittavat tarkistukset. Tarkista vastauksesi ja lue perustelut. Yritä uudelleen, jos jokin tarkistus puuttuu.
Olet PR:n tarkastaja. Ominaisuuden pitää palauttaa kirjautuneelle käyttäjälle vain hänen oman organisaationsa lasku. Katkelma ei näytä koko sovellusta.
// Fictional, incomplete example. Do not deploy.
app.get('/invoices/:id', async (req, res) => {
const invoice = await db.invoice.findUnique({
where: { id: req.params.id }
});
console.log('Invoice response', invoice);
return res.json(invoice);
});Mitä koodi tekee?
Endpoint ottaa pyynnöstä laskun ID:n, hakee sillä laskun tietokannasta, kirjoittaa koko laskun lokiin ja palauttaa sen käyttäjälle. Katkelmasta ei näe, kuka tarkistaa käyttäjän oikeuden juuri tähän laskuun.
Authentication selvittää, kuka käyttäjä on. Authorization ratkaisee, mitä hän saa tehdä. Middleware tarkoittaa tässä pyyntöä ennen endpointia käsittelevää koodia. Se voi tehdä tarkistuksia, joita katkelma ei näytä.
HARJOITUKSEN LOPUKSI
Osoittaako onnistunut pyyntö, että lasku-endpoint on turvallinen?
Vertaa vastaustasi selitykseen
Ei. Se osoittaa yhden pyynnön toimineen. Tarvitset myös näytön siitä, ettei käyttäjä saa toisen organisaation laskua. Tarkasta koko pyyntöpolku, puuttuvan laskun käsittely ja lokitus. Testin pitää koskea olennaista vaatimusta.
Sovella omassa työssäsi
Lisää seuraavaan PR-review’hun yksi testi toiminnolle, joka pitää estää.
Valitse seuraava harjoitus