tatuco / api-base-laravel
Project base for api rest.
Installs: 0
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 4
Type:project
Requires
- php: ^7.1.3
- ext-json: *
- ext-openssl: *
- ext-pdo: *
- baopham/dynamodb: ^7.0
- barryvdh/laravel-cors: ^0.11.0
- barryvdh/laravel-dompdf: ^0.8.1
- caouecs/laravel-lang: ~3.0
- dompdf/dompdf: ^0.8.2
- fideloper/proxy: ^4.0
- firebase/php-jwt: ^5.0
- guzzlehttp/guzzle: ^6.3
- intervention/image: ^2.4
- jenssegers/agent: ^2.6
- jenssegers/mongodb: ^3.6
- jimmyjs/laravel-report-generator: ^1.0
- laravel/framework: 5.8.*
- laravel/tinker: ^1.0
- league/flysystem-aws-s3-v3: ^1.0
- maatwebsite/excel: ~2.1.0
- nesbot/carbon: ^1.22
- nordsoftware/lumen-cors: ^2.2
- s-ichikawa/laravel-sendgrid-driver: ^2.0
- tibonilab/pdf-lumen-bundle: ^2.0
- tymon/jwt-auth: ^1.0
Requires (Dev)
- beyondcode/laravel-dump-server: ^1.0
- filp/whoops: ^2.0
- fzaninotto/faker: ^1.4
- mockery/mockery: ^1.0
- nunomaduro/collision: ^3.0
- phpunit/phpunit: ^7.5
This package is not auto-updated.
Last update: 2025-03-14 15:23:23 UTC
README
Instalacion
Clonar el repositorio. comandos:
$ cd carpeta-del-proyecto
$ cp .env.example .env
$ php artisan key:generate
Crear la Base de Datos y colocar el nombre en la variable de entorno DB_DATABASE .env
. Correr los comandos:
$ php artisan migrate --seed
Get api:
probar endpoint /api/
:
curl -X GET \
http://127.0.0.1:8000/api/ \
-H 'Content-Type: application/json' \
Response:
{ "version": "Laravel Components 5.7.*", "time": { "date": "2018-08-22 20:07:17.618814", "timezone_type": 3, "timezone": "UTC" } }
Crear Modelo correr el comando con all creara : controller, migration, service, model y repository de esa entidad
$ php artisan generator:tatuco Entity all
Validaciones:
// al guardar protected $validateStore = [ 'name' => 'required|max:255', 'description' => 'required', ]; //al actualizar protected $validateUpdate = [ 'name' => 'required|max:255', 'description' => 'required', ];
ir a App/Core/TatucoController.php para establecer en la siguiente propiedad, las validaciones para todo el mundo
protected $validateDefault = [];
Do Where:
El doWhere es una parametro enviado atraves de la url hacia la api, con el objetivo de filtrar, las consultas desde el cliente, evitando crear endpoints sin fin para cada cosa, Ejemplo:
/api/users?where=[{"op": "eq", "field": "id", "value": 1}]
- Esto seria el quivalente a :
SELECT * FROM users WHERE id = 1;
- donde op representa el operador (<, >, = ...) field representa la columna y value el valor que queremos obtener.
Operadores
Operador | Simbolo | Descripcion |
---|---|---|
ct | like | '%luis%' |
sw | like | 'lu%' |
ew | like | '%is' |
eq | = | |
gt | > | |
gte | >= | |
lte | <= | |
lt | < | |
in | in | |
bt | entre |
- por default el operador es "eq", tambien podemos agregar tantas condiciones como queramos:
where=[{"op":"bt","field":"id","value":[1,3],"filter":"and"},{"op":"in","field":"id","value":[5,9],"filter":"or"},{"op":"eq","field":"id","value":4,"filter":"or"}]
traduccion SQL:
SELECT * FROM users WHERE id BETWEEN 1 AND 3 AND id IN (5, 9) OR id = 4;
- Ordenamiento:
&order=["id","desc"]
- Relaciones:
&join=[{"table":"users","fk":"role.user_id","pk":"users.id","type":"inner"}]
- Especificar columnas, por defecto es ['*']:
&columns=["id as cedula", "name as Nombre"];
- Filtros por fechas: solo de debe agregar al where la propiedad "type" (date, year, month, day, time)
/api/users?where=[{"op": "eq", "field": "date_created", "value": "2019-01-22", "type": "date"}] ``` ### License MIT License Luis.