我想为我的项目实现端点的版本控制。原来FOSRestBundle实现不是很清楚,所以我想实现如下所示:
Symfony 5.4
FOSRestBundle 3
请参见下面的annotation.yaml文件:
v2_controllers:
resource: ../../src/Controller/V2/
type: annotation
prefix: /v2
name_prefix: 'api_v2_'
controllers:
resource: ../../src/Controller/
type: annotation
name_prefix: 'api_'
kernel:
resource: ../../src/Kernel.php
type: annotation当我运行这个命令php bin/console debug:router --show-controllers时,我得到以下结果:
..
..
...
api_offer_list GET ANY ANY /offer-list/{productId}/{pageType}/ App\Controller\V2\OfferListV2Controller::offerListAction()
api_v2_offer_list GET ANY ANY /v2/offer-list/{productId}/{pageType}/ App\Controller\V2\OfferListV2Controller::offerListAction()
...
..您可以看到,由于一些奇怪的原因,新版本也正在覆盖旧的端点。
最后,这里是我的fos_rest.yaml配置:
# Read the documentation: https://symfony.com/doc/master/bundles/FOSRestBundle/index.html
fos_rest:
param_fetcher_listener: true发布于 2022-01-18 15:19:52
在控制器目录中,您需要创建两个单独的目录,一个用于v1,另一个用于v2,这将解决问题。
Controller/
v1/
v2/https://stackoverflow.com/questions/70740940
复制相似问题