espier
  • 介绍
  • 技术说明
  • 系统部署
    • 准备工作
      • 域名
      • 七牛
      • 微信开放平台第三方平台申请
      • 域名备案
      • 服务器方案
      • 腾讯位置服务
      • 小程序
      • EcshopX初始化
    • 部署方案
      • 单机部署方案
      • 集群部署方案
  • 框架
    • 文档说明
    • 入门指南
      • 开发环境搭建
        • docker环境
        • 本地环境
      • composer
      • 目录结构
    • 架构思想
      • 中大型项目架构
      • Repository
      • Service
    • Bundle
      • 请求
        • 路由
        • 控制器
      • 数据库
        • 快速入门
        • Repository
        • CRUD Repository
      • 事件系统
      • 消息队列
    • 规范
      • 说明
      • 关于「能愿动词」的使用
      • 代码规范
        • 基本代码规范
        • 编码风格规范
      • Bundle 规范
        • 命名规范
    • 调试
    • 环境变量及配置
  • 快速入门
  • 运维
    • 压力测试报告
      • 5机集群
  • API文档
  • 数据辞典
  • 数据库migration规则
Powered by GitBook
On this page
  • 路由定义
  • 路由注册

Was this helpful?

  1. 框架
  2. Bundle
  3. 请求

路由

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';
...
Previous请求Next控制器

Last updated 5 years ago

Was this helpful?