API-routes og lambdaer
Av Sondre Slåttedal HavellenPublisert 02/6-22
API routes
I NextJs kan man opprette API-stier (eller API-routes). Dette er spesielle funksjoner som legges under pages/api. Disse funksjonene fungerer da som “serverless lambda”-funksjoner og en kan i stor grad bygge hele sin applokasjon rundt dette om en ønsker. For eksempel kan en lambda koble seg mot en database for å hente data direkte.
Mappestrukturen til API-routes er lik den man finner for vanlige sider. Det vil si
<name>.tsfor en enkel sti[id].tsfor dynamiske stier[…id].tsfor dynamiske catch-all-sider
API-stier brukes også for å maskere URL-en til en ekstern tjeneste og eventuelt behandle dataen før en sender resultatet tilbake eller før en sender spørringen mot den eksterne tjenesten eller databasen. I prinsippet kan man også putte et GraphQL-lag mot en REST-tjeneste her.
Eksempel på standard boilerplate kan se slik ut:
1import {NextApiRequest, NextApiResponse} from "next";
2
3
4export default async function handler(req: NextApiRequest, res: NextApiResponse) {
5
6 if(req.method !== "GET") {
7
8 return res.status(405).end();
9
10 }
11
12 const date = new Date();
13
14 return res.status(200).send({ date: date.toString() });
15
16}