Tilbake

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>.ts for en enkel sti
  • [id].ts for dynamiske stier
  • […id].ts for 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}

Les mer på nextjs.org