API simples con Shell Script, Docker y Laravel
La versión de Docker debe ser >18.00
Siga estos sencillos pasos para trabajar en el proyecto API
Clonar el repositorio
git clone https://github.com/gazra-labs/laravel-docker-apis.git
cd laravel-docker-apis
Ejecute el archivo start.sh
, el archivo ejecutará los siguientes comandos
El archivo start.sh anterior ejecutará los siguientes comandos
a. Copiar archivo .env
cp .env.example .env
Puede ingresar su clave API de Google en el archivo .env.
b. Inicie Docker y realice la compilación.
docker-compose down -v && docker-compose build && docker-compose up -d
do. Para instalar Composer en el directorio.
docker-compose exec laravel-app composer install
d. Para migrar la base de datos a Docker
docker-compose exec laravel-app php artisan key:generate
docker-compose exec laravel-app php artisan migrate --seed
mi. Generando documento API
docker-compose exec laravel-app php artisan l5-swagger:generate
F. Para comprobar la URL del directorio de trabajo
docker ps -a
gramo. Realizar pruebas PHPUnit
sleep 120
docker exec laravel-app ./vendor/bin/phpunit
Presione la URL y encontrará el proyecto en funcionamiento. La URL de trabajo sería http://0.0.0.0:8000
Hay 3 API con diferentes métodos. Para listar, crear y actualizar pedido
Parámetros | Valores | Observaciones |
---|---|---|
URL | 0.0.0.0:8000 | Verifique docker ps -a para confirmar la URL de trabajo actual. |
Ruta API | {URL} | |
Punto final | {URL}/pedidos?page=:página&limit=:límite | Ejemplo de órdenes de lista |
Ejemplo de URI completo | http://0.0.0.0:8000/api/orders?page=:página&limit=:límite | |
Documentación API | {URL}/api/documentación | |
Cobertura del código | {URL}/Cobertura de código/ |
API de pedidos de lista:
Nombre | Valores |
---|---|
Punto final | {URL}/pedidos?page=:página&limit=:límite |
Método | CONSEGUIR |
JSON solicitado | Sin cuerpo JSON |
JSON de respuesta
[
{
"id": 1,
"distance": 10636,
"status": "UNASSIGNED"
},
{
"id": 2,
"distance": 13634,
"status": "UNASSIGNED"
},
...
]
Crear pedido:
Nombre | Valores |
---|---|
Punto final | {URL}/pedidos |
Método | CORREO |
JSON solicitado
{
"origin": ["25.3260412","77.4978736"],
"destination": ["25.127270", "76.855173"]
}
JSON de respuesta:
{
"id": 51,
"distance": 12378.83,
"status": "UNASSIGNED"
}
Orden de actualización:
Nombre | Valores |
---|---|
Punto final | {URL}/pedidos/{id} |
Método | PARCHE |
JSON solicitado
{
"status": "TAKEN"
}
JSON de respuesta
{
"status": "SUCCESS"
}
Para probar las pruebas unitarias de PHP
docker exec laravel-app ./vendor/bin/phpunit
Para trabajar bajo el Contenedor con devuser...
docker exec -it laravel-app bash -c "sudo -u devuser /bin/bash"
Para trabajar bajo el servidor mysql en el contenedor con devuser.. (Contraseña = 123456)
docker exec -it mysql-db bash -c "mysql -u admin -psecret -p"
Si la compilación no funciona, prueba estos comandos
Para eliminar y actualizar todo el sistema acoplable docker system prune -a
Para detener todos los contenedores en funcionamiento y no utilizados docker stop $(docker ps -a -q)
Para eliminar todos los contenedores que funcionan y no están disponibles docker rm $(docker ps -a -q)
Para crear una imagen localmente, comience a compilar y no utilice argumentos de caché docker-compose build --no-cache && docker-compose up -d && docker-compose logs -f