develings / api-x
使用简单的JSON文件创建一个完整的API。
0.0.2
2022-02-18 08:22 UTC
Requires
- php: ^8.0.2
- ext-dom: *
- ext-json: *
- hashids/hashids: ^4.0
- laravel/framework: ^9.0
Requires (Dev)
- orchestra/testbench: ^7.0
- pestphp/pest: ^v1.21
- pestphp/pest-plugin-laravel: ^v1.2.0
This package is auto-updated.
Last update: 2024-09-19 21:57:35 UTC
README
请注意
此包仍在积极开发中,并且可能随着每个更新包含破坏性更改。
关于
仅使用简单的JSON文件创建一个完整的API。
搜索
搜索应该简单易用
{ "name": "string|search:like" }, { "description": "string|search:like_left" }, { "description": "string|search:like_right" }, { "uuid": "string|search:equal" },
简单示例
{ "name": "App", "version": "1.0", "description": "A demo application using the ApiX library", "endpoint": "/api/v1.0/", "authentication": "token:users,api_key", "events": true, "db": { "driver": "mariadb", "prefix": "app_test_" }, "servers": [ { "url": "http://app.test" }, { "url": "https://someId.execute-api.eu-central-1.amazonaws.com/dev" } ], "api": [ { "name": "device", "timestamps": true, "soft_deletes": true, "identifier": "uuid", "sort_key": "created_at", "per_page": 10, "fields": { "uuid": "string|primary|default:uuid", "device_id": "string:64|unique", "last_active_at": "datetime|index|on_update_fill:datetime", "device_user_id": "uuid|nullable", "api_key": "string|default:alphanumeric,36" }, "relations": { "user": "belongsTo:users" } } ] }
我们目前支持正常的laravel DB驱动程序。
此定义将创建一个OpenAPI规范路由以及一个用于设备表的迁移,包括其端点。
需要做的只是实例化API类。
安装
您只需要引入composer包,就完成了。
composer install develings/api-x
在项目的根目录中创建api.json文件。
php artisan api:make
实例化
// add this to config/app.php 'providers' => [ ... \ApiX\ApiXServiceProvider::class, ], // add the route (e.g. routes/web.php) $api = new ApiX\ApiX(base_path('api.json')); $api->setRoutes();
模拟数据
由于我们从api.json文件中获得了所有需要的定义,因此还可以使用faker包填充测试数据。即将推出
计划功能
使用路由语法从PHP中获取代码而不是从api.json中获取。例如
{ "api": [ "@App\\ApiX\\DeviceAPI", "@App\\ApiX\\UserAPI:getDefinition", { "name": "company", "fields": "@App\\ApiX\\CompanyAPI:getFields" } ] }