Перейти к содержимому

Вызов эндпоинтов с сервера

Эндпоинты могут использоваться для передачи многих типов данных. В этом рецепте вызывается серверный эндпоинт из скрипта компонента страницы для отображения приветствия без дополнительного запроса.

Необходимые условия

  • Проект с включенным SSR (output: 'server')

Рецепт

  1. Создайте эндпоинт в новом файле src/pages/api/hello.ts, возвращающий некоторые данные:

    import type { APIRoute } from 'astro'
    
    export const GET: APIRoute = () => {
      return new Response(
        JSON.stringify({
          greeting: 'Hello',
        }),
      )
    }
  2. На любой странице Astro импортируйте метод GET() из эндпоинта. Вызовите его с помощью глобального объекта Astro (EN), чтобы предоставить контекст запроса, и используйте ответ на странице:

    ---
    import { GET } from './api/hello.ts'
    
    let response = await GET(Astro)
    const data = await response.json()
    ---
    
    <h1>{data.greeting} world!</h1>
Внести свой вклад Сообщество Поддержать