API эндпойнты в NextJS 13

Sdílet
Vložit
  • čas přidán 3. 07. 2024
  • NextJS позволяет создавать REST API эндпойнты для CRUD запросов со стороны клиентских компонентов. Разбираемся как это делается в NextJS 13.4 и какие вспомогательные инструменты предоставляет нам фреймворк.
    GitHub github.com/michey85/next-blog...
    Тайм-коды:
    00:00 Анонс темы
    00:53 Правила использования
    03:29 Базовый пример
    05:12 POST запросы и тело запроса
    06:48 Извлечение get-параметров
    10:39 Запросы на мутацию
    13:18 Утилиты cookies, headers, redirect
    17:08 Переменные окружения
    20:25 Итоги
    Мои курсы по вебу с купонами:
    ✅ mishanep.com/
    📢 Поддержка канала:
    / mishanep
    www.tinkoff.ru/rm/nepomnyasch...
    paypal.me/mishanep
  • Věda a technologie

Komentáře • 68

  • @user-hd3ov5lj1u
    @user-hd3ov5lj1u Před rokem +15

    Отличный видос, очень ждём продолжения. Было бы круто добавить graphQL, авторизацию на jwt токенах

  • @emil7881
    @emil7881 Před 10 měsíci

    Приятно слушать и воспринимать информацию. Спасибо

  • @Taiga_libertarian
    @Taiga_libertarian Před rokem +1

    Чем дальше, тем всё легче и совершеннее. Это очень хорошие новости. 🥰

  • @IT-Svyatoslav
    @IT-Svyatoslav Před rokem

    Благодарю Михаил! Обещаете - делаете! С нас 👍🏼 и комментарии)

  • @user-kc1hw2mn2p
    @user-kc1hw2mn2p Před rokem +5

    Вот то, что было нужно!!!!! Благодарю тебя Михаил за твою работу, за четкое толкование эндпоинтов.

  • @Bondarev_Igor
    @Bondarev_Igor Před 11 měsíci

    Классное видео по эндпоинтам NextJS! Спасибо=)

  • @biLLie_wiLLie
    @biLLie_wiLLie Před rokem +4

    авторизацию и призму еще хотелось бы в этом плейлисте увидеть) спасибо вам!

  • @abilitydrafter
    @abilitydrafter Před rokem

    Спасибо за Ваш труд!

  • @DevAccount-rq4ni
    @DevAccount-rq4ni Před rokem

    Спасибо Михаил, как раз нужно было с эндпоинтами некста разобраться, и ты как в воду глядел) Спасибо дружище и жирный лайк как по расписанию!

  • @flyguy9864
    @flyguy9864 Před 2 měsíci

    спасибо за видео все четко, без воды👍

  • @user-bp7jb5of5d
    @user-bp7jb5of5d Před 9 měsíci

    Михаил, спасибо вам за ваш труд и ваше видео. Смотрю вас уже второй год. Все очень нравится. Контент топ, подача - супер!!! Все подробно разъясняете, без вопросов можно все повторить вслед за вами в коде. Отличный видео по NEXT-13. Очень хочется полноценный курс, пусть хотя бы и платный.

  • @kaber6400
    @kaber6400 Před rokem

    Как всегда крутотень, ждем auth!

  • @alexmangir
    @alexmangir Před rokem +4

    Супер, давай про SSG, ISR, SSR ...

  • @ExileHB
    @ExileHB Před rokem +2

    Ждем ещё видно по нексту!)

  • @TheAlexChannelClub
    @TheAlexChannelClub Před rokem

    Отличное видео!

  • @protonys
    @protonys Před rokem +1

    Золотой контент 👍

  • @Taiga_libertarian
    @Taiga_libertarian Před rokem

    Ща заценим ))

  • @vadimmarchenko3128
    @vadimmarchenko3128 Před rokem

    супер, спасибо

  • @user-rn5cl2fr8b
    @user-rn5cl2fr8b Před rokem

    Спасибо!

  • @user-nj9yu4dd8p
    @user-nj9yu4dd8p Před rokem

    спасибо!

  • @user-tg3wk7lg9w
    @user-tg3wk7lg9w Před rokem

    Thank you

  • @hachiko489
    @hachiko489 Před rokem

    Супер! Ждём авторизацию

  • @jiza2377
    @jiza2377 Před rokem +9

    Ждем авторизацию) Спасибо за контент

  • @vladimirmuratov2220
    @vladimirmuratov2220 Před rokem

    Ура!!! 😊

  • @sergiigulaga1486
    @sergiigulaga1486 Před rokem +4

    Михаил было б классно обновить видео с Apollo Client, Graphql и Аpp router.

  • @fergussawyer
    @fergussawyer Před rokem

    4,8 тыс просмотров и 326 лайков, за такой годный контент… я в шоке.

  • @umalishonuy7977
    @umalishonuy7977 Před rokem

    Лайк. Интересно еще как Next с QraphQL работает.

  • @markerok3411
    @markerok3411 Před 11 měsíci

    Почемуто я раньше на это видео не наткнулся. Для того чтобы сделать АПИ сначало городил огород с кастомным сервером для некста, получилась поная фигня. В итоге решил сделать отдельный АПИ на экспрессе. А оказывается в нексте уже из коробки есть весь необходимый функционал😅

  • @stasend
    @stasend Před 11 měsíci

    Фейеноорд чемпион

  • @errores-me6yu
    @errores-me6yu Před 7 měsíci

    черную тему в постман поставь это нереально смотреть

  • @arsensaydullayev4416
    @arsensaydullayev4416 Před rokem

    Zdravstvuyte, ne sovsem ponyal temu, zachem nam eto voobshe nujen?

  • @user-kh9eh2tf6j
    @user-kh9eh2tf6j Před 3 měsíci

    Миш привет. Можешь снять ролик про использование tRPC в связке с react или nextjs ? На ru просторах инфы очень мало.

    • @mishanep
      @mishanep  Před 3 měsíci

      Никогда не работал с tRPC :) Ни на одном из проектов, где работал, даже не поднимался вопрос о его возможном использовании.

    • @user-kh9eh2tf6j
      @user-kh9eh2tf6j Před 3 měsíci

      Ок. Очень специфичный кейс значит. Спасибо за ответ.@@mishanep

  • @aiornerok3931
    @aiornerok3931 Před rokem

    На вас надежда, комунити Михаила. Подскажите как можно переопределить вложенный layout. Что бы он не наследовался

    • @justpeace7852
      @justpeace7852 Před 10 měsíci

      В документации нету ?

  • @hiddenlul556
    @hiddenlul556 Před rokem +2

    Не совсем понял, зачем нам отдельно делать папки для api если мы может писать функции получение данных прямо в компоненте(page)?

    • @hiddenlul556
      @hiddenlul556 Před rokem

      Михаил вы еще говорите что через новое api можно безопастно делать запросы с приватными переменными а разве getServerSideProps не делает тоже самое?

    • @mishanep
      @mishanep  Před rokem +1

      Так и раньше можно было, я не делаю акцент, что так только в новом, просто показываю как сейчас построена работа фреймворка.
      Касаемо актуальности, если у вас клиентский компонент, которому надо динамически обновлять содержимое, то апи эндпойнты имеют место быть. Если статика - серверные компоненты, что мы разбирали в первом видео цикла.

  • @vlasovdanildev
    @vlasovdanildev Před rokem

    Михаил, подскажите пожалуйста, что у вас тема и какие иконки стоят?

    • @mishanep
      @mishanep  Před rokem +1

      Тема CodeSandbox, иконки от Material Icons.

    • @vlasovdanildev
      @vlasovdanildev Před rokem

      @@mishanep Благодарю

    • @vlasovdanildev
      @vlasovdanildev Před rokem

      @@mishanep кстати, не хотите в будущем записать видео про React Native?. заметил, что в вакансиях все чаще встречается

  • @Skvdev
    @Skvdev Před 11 měsíci

    Какое расширение помогает отображать console.log в терминале VS ? Спасибо заранее

    • @mishanep
      @mishanep  Před 11 měsíci

      Это не про расширение. Если логика отработала на сервере, то и лог будет выводиться на серверном терминале (в данном случае локальном).

    • @Skvdev
      @Skvdev Před 11 měsíci

      @@mishanepЯ наверняка что то опускаю, но нету у меня такого вывода в VS. Компонент идентичен с вашим. Что может быта причиной ?

    • @en_kratia
      @en_kratia Před 8 měsíci

      @@Skvdev Значит то, что функция не выполнилась в которой console.log().

  • @emporteme
    @emporteme Před 11 měsíci +2

    я все еще не понял как вызывать эти route внутри страниц или компонетов (которые тоже внутри страниц)

    • @johnybravo553
      @johnybravo553 Před 6 měsíci

      Так же, как к любому апи на бэкэнде, через fetch

    • @johnybravo553
      @johnybravo553 Před 6 měsíci

      Fetch(localhost:3000/api/адрес роута)

  • @eduardgrigoryan6052
    @eduardgrigoryan6052 Před 11 měsíci

    Правильно ли я понимаю что все что в папке api относится к бекенду?

    • @mishanep
      @mishanep  Před 11 měsíci +1

      И да и нет. Папку не обязательно называть api. Главное название самих файлов, вложенных в папки. Плюс бэкенд часть есть и в других местах, что разбиралась во вводном видео по Нексту.

    • @eduardgrigoryan6052
      @eduardgrigoryan6052 Před 11 měsíci

      @@mishanep спасибо большое Михаил)

  • @Ksushapi
    @Ksushapi Před 7 měsíci

    Не совсем понятно практическое применение с бэком. Допустим у меня есть бэк на Node.js. Получается я просто эндпоинты прописываю на фронте, а не на бэке, только в этом отличие?

    • @mishanep
      @mishanep  Před 7 měsíci +1

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

    • @Ksushapi
      @Ksushapi Před 7 měsíci

      А ок, понятно. То есть у меня может быть какая-то бд, типа Mongo db или реляционная типа Postgre. И я могу писать прямо с фронта?

    • @shortsvideo4570
      @shortsvideo4570 Před 5 měsíci

      да, з нехта@@Ksushapi

  • @NeoCoding
    @NeoCoding Před 11 měsíci

    да видео гораздо лучше доки, в доке в примерах даж я не вижу где сказано как достать params

  • @yakub8798
    @yakub8798 Před 10 měsíci

    мне кажется лучше использовать nestjs

    • @handyfrontend
      @handyfrontend Před 8 měsíci

      мне кажется лучше использовать ассемблер

  • @user-sw4ed4gh9n
    @user-sw4ed4gh9n Před rokem +1

    А к чему вообще писать на фронте ендпоинты , которые не взаимодействуют с датабазой ? Если нам надо лениво что-то подгружать , то мы можем использовать динамические импорты / react.lazy ? Или я упускаю какой-то ( какие-то ) другие кейсы использование , которые могут быть полезны ? Выглядит , честно говоря , как что-то абсолютно необязательное , мол использовать кое-как можно , но не совсем понятно зачем .

    • @mishanep
      @mishanep  Před rokem

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

    • @user-sw4ed4gh9n
      @user-sw4ed4gh9n Před rokem +1

      ​@@mishanep, с дб может взаимодействовать , если дб будет подключена к фронтенду ( по крайней мере , я о других способах не осведомлен) , я признать сомневаюсь в оправданности такой архитектуры .Потому что в таком случае начинаешь задумываться , почему бы нам в принципе не отказаться от бекенда / не использовать его , например , в текущем примере.
      Мы можем взять и когда нам понадобится импортировать те же сами posts , а потом отфильтровать их. В принципе сделать примерно тоже самое , что было сделано в запросе на взятие поста по query-параметру.
      У нас же в любом случае в реализованном вами кейсе будет лететь запрос и этот запрос будет всё так же обрабатываться в рамках нашего приложения , где этот же массив постов будет отфильтрован , лишь после чего мы получим итоговое значение , как response .
      Это так , теория , я признаться на практике ничего подобного не делал (в принципе не сталкивался с необходимостью или требованиями по отложенной загрузке), но в рамках теории не понимаю преимуществ , продемонстрированного вами подхода. Разве что он как-то помогает нам перераспределить нагрузку между браузером и node . Тут я , честно говоря , не силён и не совсем понимаю , какие конкретно процессы обрабатываются node в рамках React/Next-приложения.
      Если я заблуждаюсь - будьте добры , дайте мне об этом знать , я буду крайне благодарен.

    • @mishanep
      @mishanep  Před rokem +2

      NextJS - это фуллстек фреймворк. У него есть часть, которая работает только на сервере, часть - только на клиенте, и смежные истории. Поэтому база данных к фронтенду никак не подключается. На клиент не пойдут даже npm-зависимости, если они были использованы только в серверной части. Next - больше про монолит. Но мы можем использовать бэкенд независимо и тогда уже делать через Некст запросы к бэкенду

    • @user-sw4ed4gh9n
      @user-sw4ed4gh9n Před rokem

      @@mishanep , Благодарю за ответ. А вы не подскажете где можно найти какую-то конкретную информацию о том , как работает север в рамках react / next - приложения ?
      То есть , как я понимаю у нас код исполняется на сервере ( в Node среде ) , но не совсем понимаю , как именно .
      И какие операции по умолчанию выполняются в node на react. Ведь там у нас вроде как нет серверных компонентов или SSR методов ( в дефолтном варианте ) , но всё же какие-то манипуляции выполняются на стороне Node.js .

  • @webpanda3127
    @webpanda3127 Před 17 dny

    Не вижу смысла без бд это обьяснять

    • @mishanep
      @mishanep  Před 16 dny

      Нет проблем сделать с бд. Я решил не усложнять видео темой подключения к бд. А так - действие происходит на сервере, мы можем работать с базой.

  • @ProgrammerFlunt
    @ProgrammerFlunt Před rokem

    Спасибо!