3

問題

で定義するとrouting.yml:

my_controllers:
    resource: "@MyBundle/Controller/"
    type:     annotation
    prefix:   /

と:

my_api:
    resource:    'MyBundle\Controller\ApiController'
    type:        rest
    prefix:      /api
    name_prefix: my_api_
    options:
        expose: true

で重複したルートを取得しNelmioApiDocます:

ここに画像の説明を入力

質問

ApiControllerからのルートが重複しないようにするにはどうすればよいですか?

  • ApiController「ワイルドカード」リソースのインポートから除外しますか?
  • 他のすべてのコントローラを個別にインポートしますか?
  • 他の解決策?
4

1 に答える 1

5

Symfony には実際に重複したルートがあるため、Nelmio ApiDoc に重複したエントリが表示されます。このコマンドを実行して、API のルートを含む Symfony のすべてのルートを表示します (/api接頭辞がある場合とない場合の両方で表示されます)。

php app/console router:debug

Yann が示唆するように、API コントローラー用に別のディレクトリ ( のようなもの) を作成し、そこに配置するのが最善の方法だと思います@MyBundle/ControllerRest/my_api次に、セクションの下のリソース ルートrouting.ymlと API コントローラーの名前空間を更新することを忘れないでください。

このようにして、重複したルートを取り除くため、ApiDoc は呼び出しごとに 2 つではなく 1 つのルートのみを表示します。

于 2015-08-11T10:44:23.260 に答える