1

Finished upload.pm, fixed cpanfile + bootstrap.sh

* Переименован конфиг
* Исправлены cpanfile и bootstrap.shб теперь они работают
* loadConf и saveConf перемещены в conf.pm из myapi.psgi
* Исправлен синтаксис README.md согласно форматированию GitHub
* Обновлён .gitignore
* Закончена работа над upload.pm
This commit is contained in:
eleksir
2019-09-21 21:23:30 +03:00
parent 9953600dae
commit 4495529710
8 changed files with 135 additions and 85 deletions

View File

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