1

Я пытаюсь использовать REST API для Mailman3. Я установил Mailman Bundler, следуя инструкциям отсюда. И я следую инструкциям, найденным здесь.

У меня Postorius и HyperKitty работают без нареканий. Я сделал тестовый список рассылки, используя пользовательский интерфейс, расположенный по адресу localhost:8000.

Из wiki.list.org/Mailman3, говоря о клиенте mailman:

The official Python 2 and 3 bindings to the administrative REST API. Used by Postorius and HyperKitty, this provides a convenient, object-based API for programmatic access to the Core

Поскольку мои Postorius и HyperKitty работают и могут создавать списки, я знаю, что все установлено и работает правильно. Ошибка на моем конце, очевидно.

Когда я пытаюсь получить доступ к: localhost: 9001/3.0/lists, как указано на сайте с pythonhosted (ссылка в моем первом абзаце), в моем браузере появляется сообщение об ошибке:

The server localhost refused to allow this computer to make a connection.

Я ожидаю возвращения JSON на экран здесь. Я пробовал это в приложении Google «Почтальон», которое является просто приложением, которое используется для тестирования запросов REST API и других запросов GET/POST, и я получаю очень похожую ошибку:

This seems to be an error connecting to http://localhost:9001/3.0/lists

Есть ли шаг, который я пропускаю? Может быть, шаг, который похож на запуск веб-интерфейса / пользовательского интерфейса, но вместо запуска пользовательского интерфейса я инициализирую доступ и возможность вернуть данные из порта 9001?

Для чего это стоит. Я намерен вызвать этот REST API из PHP с помощью CURL. Подключение к REST API - последний шаг во всей этой настройке, поэтому я бы хотел отложить настройку и двигаться дальше.

Я частично неграмотный питон. Спасибо за помощь заранее.

2 ответа2

1

Несмотря на то, что сказано в этой документации, порт для API - 8001, и вы используете базовую авторизацию для входа. Лично я использовал cURL для подключения к API.

0

Вот как можно протестировать REST API mailman3 в Debian:

eval $(grep REST_API /etc/mailman3/mailman-web.py |sed 's/ = /=/')
curl --user $MAILMAN_REST_API_USER:$MAILMAN_REST_API_PASS http://localhost:8001/3.0/system/versions

Или в качестве альтернативы:

$ /usr/share/mailman3-web/manage.py mmclient
>>> client.system

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .