tatuco / api-base-laravel
API REST 项目基础。
dev-master
2020-07-07 15:46 UTC
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: 2024-09-27 13:07:03 UTC
README
安装
克隆仓库。命令
$ cd carpeta-del-proyecto
$ cp .env.example .env
$ php artisan key:generate
创建数据库并将名称放在环境变量 DB_DATABASE .env
中。运行命令
$ php artisan migrate --seed
获取API
测试端点 /api/
curl -X GET \
http://127.0.0.1:8000/api/ \
-H 'Content-Type: application/json' \
响应
{ "version": "Laravel Components 5.7.*", "time": { "date": "2018-08-22 20:07:17.618814", "timezone_type": 3, "timezone": "UTC" } }
创建模型,运行命令将创建控制器、迁移、服务、模型和该实体的存储库
$ php artisan generator:tatuco Entity all
验证
// al guardar protected $validateStore = [ 'name' => 'required|max:255', 'description' => 'required', ]; //al actualizar protected $validateUpdate = [ 'name' => 'required|max:255', 'description' => 'required', ];
前往 App/Core/TatucoController.php 以在以下属性中设置验证,适用于所有人
protected $validateDefault = [];
Do Where
doWhere 是通过 URL 传递给 API 的参数,目的是过滤来自客户端的查询,避免为每一件事创建无限制的端点。例如
/api/users?where=[{"op": "eq", "field": "id", "value": 1}]
- 这相当于
SELECT * FROM users WHERE id = 1;
- 其中 op 代表操作符 (<, >, = ...),field 代表列,value 是我们想要获取的值。
操作符
- 默认操作符是 "eq",我们也可以添加任意多的条件
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"}]
SQL 语句翻译
SELECT * FROM users WHERE id BETWEEN 1 AND 3 AND id IN (5, 9) OR id = 4;
- 排序
&order=["id","desc"]
- 关系
&join=[{"table":"users","fk":"role.user_id","pk":"users.id","type":"inner"}]
- 指定列,默认为 ['*']
&columns=["id as cedula", "name as Nombre"];
- 日期过滤器:只需在 where 中添加 "type" 属性(date, year, month, day, time)即可
/api/users?where=[{"op": "eq", "field": "date_created", "value": "2019-01-22", "type": "date"}] ``` ### License MIT License Luis.