Как интегрировать Strapi API и Панель администратора с другим приложением узла (которое использует Strapi API)? - PullRequest
0 голосов
/ 19 июня 2019

Я пытаюсь разработать приложение, которое использует API-интерфейсы Strapi Admin Panel, и в то же время служит веб-сайтом, который использует этот API.

Итак, в основном, я пытаюсьсоздать веб-сайт:

  • , где /api серверы маршрутов в качестве конечной точки API Strapi

  • , где маршрут /admin служит в качестве панели администратора Strapiдля создания API

  • , где все другие маршруты настроены для обслуживания моего сайта, то есть:

    • / Маршрут является целевой страницеймой сайт

    • /contacts это страница контактов

    • и т. д.

  • И, кроме того, статические файлы сайта (html / css / etc) должны обслуживаться с сервера, который, соответственно, использует сгенерированный API (на стороне сервера).


Надеюсь, я не выражаю себя слишком смутно.

По сути, мне нужно интегрировать одно приложение node.js (мой сайт) с другим приложением node.js (Strapi) втаким образом, что они беспрепятственно работают вместе как один .


Кто-нибудь знает, как этого добиться?


IЯ читал здесь некоторые ответы о Stackoverflow и проблемах Strapi GitHub, и некоторые люди говорили, что способ достичь этого - запустить два отдельных приложения на разных портах, но мне это не кажется правильным (или, может быть, я просто нея не могу понять некоторые базовые вещи).

Мне нужно сделать одно приложение, которое, по сути, представляет собой простой многостраничный веб-сайт, но дополненный инструментами генерации API от Strapi.


У меня запущено и работает мое приложение Strapi, и я подумал, что, возможно, мне нужно найти какое-то место в структуре папок приложения, чтобы поместить мой веб-сайт (т. Е. Все статические элементы в папку public), но где разместить серверную часть.Вещи?

И мне нужно будет использовать шаблонизатор, поэтому снова возникает вопрос "где разместить файлы на стороне клиента".Чем больше я копаюсь в коде, тем больше я запутываюсь.


PS: Я в порядке, используя Koa, который используется в качестве сервера для Strapi.

PPS: Далее,Я планирую развернуть приложение на Heroku на одном Dyno (если это важно).

1 Ответ

2 голосов
/ 21 июня 2019

Хорошо, я только что поиграл с префиксом маршрутизации, и это решение, которое я предлагаю вам.

Так что вам придется создать приложение для веб-сайта.И нажмите сборку в папке ./public приложения Strapi.

Затем в ваших api/.../config/routes.json файлах вам нужно будет добавить опцию prefix в ключе config каждого из ваших маршрутов идля всех ваших API

{
  "routes": [
    {
      "method": "POST",
      "path": "/restaurants",
      "handler": "Restaurant.create",
      "config": {
        "policies": [],
        "prefix": "/api"
      }
    }
  ]
}
  • Таким образом, в конце ваш администратор получит /admin
  • Конечные точки ваших API с префиксом /api
  • Иваш сайт / активы на /
...