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"
}
]
}
