|
2 years ago | |
---|---|---|
app | 2 years ago | |
bootstrap | 2 years ago | |
config | 2 years ago | |
database | 2 years ago | |
docker | 2 years ago | |
public | 2 years ago | |
resources | 2 years ago | |
routes | 2 years ago | |
storage | 2 years ago | |
tests | 2 years ago | |
.editorconfig | 2 years ago | |
.env.example | 2 years ago | |
.gitattributes | 2 years ago | |
.gitignore | 2 years ago | |
.styleci.yml | 2 years ago | |
API.png | 2 years ago | |
README.md | 2 years ago | |
artisan | 2 years ago | |
composer.json | 2 years ago | |
composer.lock | 2 years ago | |
docker-compose.yml | 2 years ago | |
package.json | 2 years ago | |
phpunit.xml | 2 years ago | |
server.php | 2 years ago | |
webpack.mix.js | 2 years ago |
README.md
Easy gallery cloud API
Простое API позволяющее содержать файлы на удаленном сервере и обращаться к ним по неизменяемым адресам. Разрабатывалось как решение под независимые хранилища. Выложена урезанная копия работающая с одним хранилищем. Так же целенаправленно отключена авторизация. Демонстрационный проект, однако полностью рабочий. Работает полностью без БД, это сервис, предоставляющий лишь унифицированный доступ к файлам.
Установка
Можно использовать установив как сайт, либо можно установить как docker-compose. Для простой установки можно выполнить
git clone https://source.net-bit.ru/Misterzym/Easy-gallery-cloud-API.git
cd Easy-gallery-cloud-API
docker-compose up -d
Перед запуском сборки, можно настроить свои файловые хранилища в .env файле, по умолчанию будет использоваться файловая система. Однако включен и установлен пакет, позволяющий использовать s3 в качестве места хранения, так как именно для него он и разрабатывался.
После сборки будут развернуты 2 образа, php-fpm и nginx, на 8010 порту можно будет открыть документацию.
Настройки для .env
ALLOW_MIME_TYPES
=jpeg,png (доступные расширения файлов для загрузки)GALLERY_PREFIX
="/gallery/" (основной префикс, внутри которой будет хранить файлы API)
Использование
Так как проект представляет собой голый API - удобнее всего будет пользоваться им из идущего в комплекте Swagger, достаточно открыть его по адресу /api/documentation. Из проекта удалена авторизация, по этому для проверки работы не потребуется генерировать токены и прочее. Названия и описания методов очень точно и емко описывают их работу, а все передаваемые данные подписаны, для простоты понимания.
Тесты
Проект полностью покрыт unit тестами, для полноты охвата использовались интеграционные тесты, которые проверяют не просто работу отдельных функций, а целиком работу отдельных endpoint'ов API.