CakePHP restful API路由到一组控制器
我想知道是否可以在CakePHP restful API路由到一组控制器,php,api,rest,cakephp,routing,Php,Api,Rest,Cakephp,Routing,我想知道是否可以在Cakephp中设置一个路由,允许我路由到一组设置了前缀的控制器。我要做的是复制我的大多数控制器,但要使用RESTAPI 我希望站点本身仍然有所有默认的控制器,但是有一个只返回JSON的产品控制器。为此,我想将所有api控制器移动到一个子文件夹中,并通过检测/api/controllername路由到它们 这是可能的,甚至是实现这一目标的正确方法吗 我想做的是复制我的大多数控制器,但一个 RESTAPI 坏主意。依我拙见您很可能会复制代码,并将代码分散到任何地方。把它放在一个地
Cakephp
中设置一个路由,允许我路由到一组设置了前缀的控制器。我要做的是复制我的大多数控制器,但要使用RESTAPI
我希望站点本身仍然有所有默认的控制器,但是有一个只返回JSON
的产品控制器。为此,我想将所有api控制器移动到一个子文件夹中,并通过检测/api/controllername
路由到它们
这是可能的,甚至是实现这一目标的正确方法吗
我想做的是复制我的大多数控制器,但一个
RESTAPI
坏主意。依我拙见您很可能会复制代码,并将代码分散到任何地方。把它放在一个地方。这句话是一个指标,让我觉得你必须在你的控制器很多逻辑。把它移到模特儿身上,胖模特儿
有几种更好的方法可以做到这一点
- 使用前缀路由到相关控制器内的API方法(API/v1/foo/bar->ControllerName::API_actionName())
- 实现一个分派模型方法的API控制器(API/v1/foo/bar->FooModel::barMethod($queryParam1,$queryparam2,…)
- 实现一个位于模型和控制器之间的服务层,并实现第二个建议中的dispatcher筛选器或API控制器来调度服务方法。您将使用服务而不是模型。控制器服务模型。要很好地实现这一点,需要具备框架和设计模式方面的一些经验红色。如果做得不好,可能会造成更多的问题而不是好处-IMHO
- 如果它或多或少是一个简单的API,并且API逻辑与您的操作类似,那么您可以简单地重复使用您已经拥有的相同控制器操作,只需使用序列化,并且仍然可以使用路由为它们创建一个奇特的路由(API/v1/…)。然后,如果控制器被称为API,您还可以执行条件检查
- 使用前缀路由到相关控制器内的API方法(API/v1/foo/bar->ControllerName::API_actionName())
- 实现一个分派模型方法的API控制器(API/v1/foo/bar->FooModel::barMethod($queryParam1,$queryparam2,…)
- 实现一个位于模型和控制器之间的服务层,并实现第二个建议中的dispatcher筛选器或API控制器来调度服务方法。您将使用服务而不是模型。控制器服务模型。要很好地实现这一点,需要具备框架和设计模式方面的一些经验红色。如果做得不好,可能会造成更多的问题而不是好处-IMHO
- 如果它或多或少是一个简单的API,并且API逻辑与您的操作类似,那么您可以简单地重复使用您已经拥有的相同控制器操作,只需使用序列化,并且仍然可以使用路由为它们创建一个奇特的路由(API/v1/…)。然后,如果控制器被称为API,您还可以执行条件检查
- 使用前缀路由到相关控制器内的API方法(API/v1/foo/bar->ControllerName::API_actionName())
- 实现一个分派模型方法的API控制器(API/v1/foo/bar->FooModel::barMethod($queryParam1,$queryparam2,…)
- 实现一个位于模型和控制器之间的服务层,并实现第二个建议中的dispatcher筛选器或API控制器来调度服务方法。您将使用服务而不是模型。控制器服务模型。要很好地实现这一点,需要具备框架和设计模式方面的一些经验红色。如果做得不好,可能会造成更多的问题而不是好处-IMHO
- 如果它或多或少是一个简单的API,并且API逻辑与您的操作类似,那么您可以简单地重复使用您已经拥有的相同控制器操作,只需使用序列化,并且仍然可以使用路由为它们创建一个奇特的路由(API/v1/…)。然后,如果控制器被称为API,您还可以执行条件检查