Простые API с Shell Script, Docker и Laravel.
Версия Docker должна быть > 18.00.
Следуйте этим простым шагам для рабочего проекта API.
Клонировать репозиторий
git clone https://github.com/gazra-labs/laravel-docker-apis.git
cd laravel-docker-apis
Запустите файл start.sh
, файл выполнит следующие команды
Выше файла start.sh будут выполняться следующие команды
а. Скопировать файл .env
cp .env.example .env
Вы можете ввести свой ключ API Google в файле .env.
б. Запустите Docker и выполните сборку
docker-compose down -v && docker-compose build && docker-compose up -d
в. Чтобы установить композитор в каталог
docker-compose exec laravel-app composer install
д. Чтобы перенести базу данных в докер
docker-compose exec laravel-app php artisan key:generate
docker-compose exec laravel-app php artisan migrate --seed
е. Создание документа API
docker-compose exec laravel-app php artisan l5-swagger:generate
ф. Чтобы проверить URL рабочего каталога
docker ps -a
г. Выполнение PHPUnit-тестов
sleep 120
docker exec laravel-app ./vendor/bin/phpunit
Нажмите URL-адрес, и вы найдете рабочий проект. Рабочий URL-адрес будет http://0.0.0.0:8000.
Существует 3 API с разными методами. Чтобы составить список, создать и обновить заказ
Параметры | Ценности | Примечания |
---|---|---|
URL-адрес | 0.0.0.0:8000 | Пожалуйста, проверьте docker ps -a чтобы подтвердить текущий рабочий URL. |
Путь API | {URL} | |
Конечная точка | {URL}/orders?page=:page&limit=:limit | Пример порядка списка |
Пример полного URI | http://0.0.0.0:8000/api/orders?page=:page&limit=:limit | |
API-документация | {URL}/API/документация | |
Покрытие кода | {URL}/CodeCoverage/ |
API порядка списка:
Имя | Ценности |
---|---|
Конечная точка | {URL}/orders?page=:page&limit=:limit |
Метод | ПОЛУЧАТЬ |
Запрошен JSON | Нет тела JSON |
Ответ в формате JSON
[
{
"id": 1,
"distance": 10636,
"status": "UNASSIGNED"
},
{
"id": 2,
"distance": 13634,
"status": "UNASSIGNED"
},
...
]
Создать заказ:
Имя | Ценности |
---|---|
Конечная точка | {URL}/заказы |
Метод | ПОЧТА |
Запрошенный JSON
{
"origin": ["25.3260412","77.4978736"],
"destination": ["25.127270", "76.855173"]
}
Ответ в формате JSON:
{
"id": 51,
"distance": 12378.83,
"status": "UNASSIGNED"
}
Порядок обновления:
Имя | Ценности |
---|---|
Конечная точка | {URL}/заказы/{id} |
Метод | ПЛАСТЫРЬ |
Запрошен JSON
{
"status": "TAKEN"
}
Ответ в формате JSON
{
"status": "SUCCESS"
}
Чтобы протестировать модульное тестирование PHP
docker exec laravel-app ./vendor/bin/phpunit
Для работы под Контейнером с devuser...
docker exec -it laravel-app bash -c "sudo -u devuser /bin/bash"
Для работы под MySQL сервером в контейнере с devuser.. (Пароль = 123456)
docker exec -it mysql-db bash -c "mysql -u admin -psecret -p"
Если сборка не работает, попробуйте эти команды
Чтобы удалить и обновить всю систему докеров, docker system prune -a
Чтобы остановить все рабочие и неиспользуемые контейнеры, docker stop $(docker ps -a -q)
Чтобы удалить все рабочие и неиспользуемые контейнеры docker rm $(docker ps -a -q)
Чтобы создать образ локально, запустите сборку и не используйте аргументы кэша docker-compose build --no-cache && docker-compose up -d && docker-compose logs -f