Endpoints can be used to serve many kinds of data. This recipe calls a server endpoint from a page’s component script to display a greeting, without requiring an additional fetch request.
Create an endpoint in a new file src/pages/api/hello.ts that returns some data:
import type { APIRoute } from 'astro'
export const GET: APIRoute = () => {
return new Response(
JSON.stringify({
greeting: 'Hello',
}),
)
}
On any Astro page, import the GET() method from the endpoint. Call it with the Astro global to provide the request context, and use the response on the page:
---
import { GET } from './api/hello.ts'
let response = await GET(Astro)
const data = await response.json()
---
<h1>{data.greeting} world!</h1>
© 2021 Fred K. Schott
Licensed under the MIT License.
https://docs.astro.build/en/recipes/call-endpoints/