### Что это? myapi - разнообразное api и пример его использования. Api написано на perl-е для удобства и простоты разработки. ### Что умеет? #### ping.pm отвечает pong, нужно для проверки, что приложение в принципе живо #### easter_egg.pm ditto, пробсто бесполезные функции, just for fun quote - цитата дня chanserv - обращение к несуществующему chanserv nickserv - обращение у несуществующему nickserv me - действие /me #### image_dl.pm будет модуль для скачивания картинок из интернетов #### metagen.pm будет модуль для генерации метаданных в указанном репозитории #### upload.pm модуль-пример для загрузки файлов в каталог, конфигурируется в myapi.json в классе upload. #### paste.pm будет модуль для пасты и для сокращения ссылок #### utils.pm модуль с простыми утилитами ip - возвращает ip, с которого пришёл клиент getaddrbyname - возвращает список ipv4 адресов по имени хоста getnamebyaddr - возвращает имя хоста по ipv4 адресу punycoder - кодирует в punycode punydecoder - превращает punycode-строку в utf-8 строку mytime - возвращает время #### ircbot.pm будет модуль с простым ботом #### xmppbot.pm будет модуль с простым xmpp-ботом ### Зачем это? ХЗ, если есть что-то интересное в наборе модулей, то можно это использовать ### Подготовка к запуску #### Сервер приложений Для запуска api используется uwsgi. Возможен вариант запуска и через другие сервера psgi, например, через plack или nginx unit, но это не тестировалось. #### Перловые модули Помимо самого perl-а, для запуска нужны cpanm и lib::local, чтобы имет возможность засосать всё остальное в каталог vendor_perl. #### Подготовительные операции Перед первым запуском и после каждого обновления необходимо запускать bootstrap.sh, который и засасывает зависимости из интернетов и складывает их все в каталог vendor_perl. Зависимостей сравнительно много и среди них есть "пидорские", но вполне себе стабильные модули, подтягиваемые по графу зависимостей не напрямую :) #### Конфигурация uWSGI TBD ### Запуск В процессе работы api, данные складываются в каталог data. TBD ### Отанов TBD