You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
3.1 KiB
27 lines
3.1 KiB
2 years ago
|
# Easy gallery cloud API
|
||
|
Простое API позволяющее содержать файлы на удаленном сервере и обращаться к ним по неизменяемым адресам.
|
||
|
Разрабатывалось как решение под независимые хранилища. Выложена урезанная копия работающая с одним хранилищем.
|
||
|
Так же целенаправленно отключена авторизация. Демонстрационный проект, однако полностью рабочий.
|
||
|
Работает полностью без БД, это сервис, предоставляющий лишь унифицированный доступ к файлам.
|
||
|
## Установка
|
||
|
Можно использовать установив как сайт, либо можно установить как **docker-compose**.
|
||
|
Для простой установки можно выполнить
|
||
|
```bash
|
||
|
git clone https://source.net-bit.ru/Misterzym/Easy-gallery-cloud-API.git
|
||
|
docker-compose up -d
|
||
|
```
|
||
|
Перед запуском сборки, можно настроить свои файловые хранилища в .env файле, по умолчанию будет использоваться файловая система. Однако включен и установлен пакет, позволяющий использовать s3 в качестве места хранения, так как именно для него он и разрабатывался.
|
||
|
|
||
|
После сборки будут развернуты 2 образа, php-fpm и nginx, на 8010 порту можно будет открыть [документацию](http://localhost:8010/api/documentation).
|
||
|
## Настройки для .env
|
||
|
- `ALLOW_MIME_TYPES`=**jpeg,png** (доступные расширения файлов для загрузки)
|
||
|
- `GALLERY_PREFIX`="**/gallery/**" (основной префикс, внутри которой будет хранить файлы API)
|
||
|
|
||
|
### Использование
|
||
|
Так как проект представляет собой голый API - удобнее всего будет пользоваться им из идущего в комплекте Swagger, достаточно открыть его по адресу **/api/documentation**.
|
||
|
Из проекта удалена авторизация, по этому для проверки работы не потребуется генерировать токены и прочее.
|
||
|
Названия и описания методов очень точно и емко описывают их работу, а все передаваемые данные подписаны, для простоты понимания.
|
||
|

|
||
|
### Тесты
|
||
|
Проект полностью покрыт unit тестами, для полноты охвата использовались интеграционные тесты, которые проверяют не просто работу отдельных функций, а целиком работу отдельных endpoint'ов API.
|