NextJS отправка формы во внутренний API

В документации Next.JS я прочитал следующее.

Note: You should not use fetch() to call an API route in getStaticProps. Instead, directly import the logic used inside your API route. You may need to slightly refactor your code for this approach.

Fetching from an external API is fine!

Но если я не должен использовать внутренний API, тогда возникают два вопроса.

  • Как я могу обрабатывать ПОЧТЫ? Должен ли я обрабатывать POSTS / PUTS и т. Д. Через API, но не GETS? Мне это кажется странным.
  • Если мне также не следует делать «внутренние сообщения и т. Д.», Почему там есть опция API?

редактировать:

Хм. Я предполагаю, что одна из причин заключается в том, что при использовании getStaticProps и компиляции статической версии сайта @ время компиляции API потенциально не работает. Но это можно легко решить, запустив API одновременно. (Поскольку GetStaticProps на самом деле не актуален для интерактивных страниц, поэтому POST и т. Д.)

edit2:

Кто-то здесь тоже это выяснил. Next.js - Ошибка: поддерживаются только абсолютные URL-адреса запустить экспорт и разделение по отдельности, а затем при необходимости вы можете выполнять выборку в статических реквизитах. Тогда, по крайней мере, все в одном месте.


person Matthijn    schedule 05.06.2021    source источник
comment
Почему вы делаете _1 _ / _ 2_ запросы к своему внутреннему маршруту API внутри getStaticProps? Next.js использует getStaticProps для предварительного рендеринга страниц во время сборки. Хотя существуют маршруты API для обработки запросов на стороне клиента.   -  person juliomalves    schedule 06.06.2021
comment
stackoverflow.com/questions/62089870/ помогает?   -  person Nikolai Kiselev    schedule 07.06.2021
comment
Я не выполняю POST или PUT в getStaticProps. Я это понимаю. Но моя точка зрения. Допустим, я также делаю мобильное приложение (родное). Затем я хочу, чтобы мой API обрабатывал не только POST и PUT, но и все, что getStaticProps может захотеть GET. Итак, здесь я хочу вызвать API и в этих случаях. Так что вместо fetchUsers() я звоню fetch('/api/users') или что-то в этом роде. Поскольку я уже сделал это и для мобильного приложения.   -  person Matthijn    schedule 07.06.2021


Ответы (1)


Функция getStaticProps предназначена для генерации данных на стороне сервера при загрузке страницы.

Ответ 1. Вы должны обрабатывать POST / PUT / GET и т. Д. В своих маршрутах API.

Ответ 2: Основное различие между getStaticProps и API - это время их запуска. getStaticProps запускается, когда страница создается на сервере. API можно вызвать в любое время, когда они вам понадобятся.

person jordiburgos    schedule 05.06.2021