路由
ecshopx 采用 Dingo API 来构建和管理 API。
为了避免与项目路由冲突,dingo/api 将会使用其专属的路由实例。 在 bootstrap/route.php
中定义了API 路由的实例:
$api = app('Dingo\Api\Routing\Router');
路由定义
ecshopx 前端包含了 admin管理端、shop 管理端、小程序、PC 和 H5 等终端,所以在routes
文件下,我们对路由做了分组:
admin
api
frontapi
shopapi
super
thirdparty
每个 Bundle 的路由根据需求定义在routes
文件夹下的分组中,路由文件名称为业务名称,路由定义是必须定义版本号,默认为 V1
,定义了一条路由就定义了一个接口。
路由定义的语法请参考 Dingo API,以 AftersalesBundle
为例:
定义路由
$api->version('v1', function($api) {
// 售后相关api
$api->group(['namespace' => 'AftersalesBundle\Http\Api\V1\Action', 'middleware' => ['api.auth', 'activated', 'shoplog'], 'providers' => 'jwt'], function($api) {
$api->get('/aftersales', ['name' => '获取售后列表', 'as' => 'aftersales.list', 'uses' => 'Aftersales@getAftersalesList']);
});
});
其中
'uses' => 'Aftersales@getAftersalesList'
Aftersales
为对用控制器类名,getAftersalesList
为方法名。
AftersalesBundle
的路由会存在于以下几个分组:
routes/api/aftersales.php
routes/frontapi/aftersales.php
routes/shopapi/aftersales.php
路由注册
在定义路由之后,必须手工注册到bootstrap/route.php
中,才可以使用。
比如 AftersalesBundle
新增了一组 admin 的路由,我们定义文件路径为:
routes/admin/aftersales.php
我们需要将此文件加入到bootstrap/route.php
中:
<?PHP
...
require __DIR__.'/../routes/admin/aftersales.php';
...
Last updated
Was this helpful?