Привет!
Я планирую заменить существующий сайт на Discourse. Проблема в том, что бэкенд этого сайта содержит общую логику, используемую даже для мобильного приложения, а также специфические действия для самого сайта.
Поскольку мне всё равно нужно поддерживать активный сервер с этой логикой, я задаюсь вопросом: можно ли отправлять HTTP-запросы из Discourse на внешний сервер? Идеальный вариант — чтобы при наступлении определённых событий в Discourse автоматически отправлялся HTTP-запрос на мой сервер.
Возможно ли это на самом деле? Если да, есть ли где-то руководство?
Также можно ли создавать темы со специфическими полями и передавать их в составе HTTP-запроса?
Похоже, вы хотите реализовать концепцию вебхуков. Вам нужно настроить вебхуки, которые будут отправлять запросы на указанные URL-адреса при наступлении определённого события. Если это так, ознакомьтесь с этим материалом:
Спасибо всем за ответы. Нет, я ищу способ создать полноценный REST API-клиент, а не простой webhook.
То, что я пытаюсь воспроизвести, — это своего рода маркетплейс, где пользователи могут публиковать свои товары, а затем принимать различные предложения от других пользователей. Логика маркетплейса должна оставаться на сервере, но фронтендом будет Discourse, поэтому он должен обновляться в соответствии с данными на сервере.
Честно говоря, я не знаю, что лучше сделать в этой ситуации, поэтому ищу советы и ссылки!
Также я отправляю вам ссылку на сайт (он на итальянском), чтобы вы лучше поняли, что я пытаюсь мигрировать.
Я думаю, что здесь требуется некоторое уточнение касательно роли, которую будет играть Discourse. Как ваш вариант использования связан с обсуждениями/разговорами? Что будет выполняться в Discourse, а что — на вашем сервере?
Это довольно общее утверждение. Сам по себе Discourse — это целая система. Какие данные вы планируете отображать в Discourse, которые поступают из вашего другого сервера или синхронизируются с ним?
Исходя из предоставленной вами информации, это определённо можно реализовать с помощью плагина. Существуют интеграции для WordPress, GitHub и других платформ, которые могут выполнять схожие задачи. Но это лишь мои догадки, основанные на прочтении между строк.
Если вы хотите понять, как создавать плагины, вот отличная подборка ссылок от @merefield:
Хорошо, позвольте мне лучше объяснить идею с самого начала:
Я хочу создать маркетплейс, где пользователи могут продавать или обменивать свои товары. В идеале каждый раз, когда пользователь создает пост, он должен заполнять определенные поля для описания этого предмета. Другие пользователи должны иметь возможность обсуждать цену этого товара и делать ставки с помощью специальных кнопок и полей (которые должны быть добавлены с помощью Discourse).
Исходя из этой идеи, есть два пути, по которым я могу пойти (если Discourse это позволяет):
Каждый раз, когда в Discourse происходит взаимодействие, связанное с такими предложениями, я хотел бы, чтобы мой сервер обновлял или отправлял данные.
Или, если это невозможно:
Я хотел бы перенести всю логику в Discourse, используя его внутреннюю базу данных, и создать REST API-сервис на базе Discourse, который позволит мобильному приложению подключаться и использовать этот сервис со смартфона.
Какая идея лучше и быстрее реализуется с помощью Discourse?
Это предпочтительный подход. Дело в том, что Discourse не является торговой площадкой, и нет смысла настраивать его так, чтобы он вел себя как таковая.
Также, вы хотите написать код самостоятельно или нанять кого-то для этого?
Я думаю, вам стоит прочитать ссылки, приведенные выше. Кроме того, этот плагин для WordPress выполняет аналогичную задачу, но для WordPress, так что вы можете ознакомиться и с ним.