symfony4 FOS Проверка комплекта остальных пакетов не работает - PullRequest
0 голосов
/ 19 ноября 2018

Я пробовал symfony4 с версией API остальных пакетов FOS, и это работает с URL-маршрутизацией, но версия для API не работает.Пожалуйста, найдите мой код ниже, и я что-то пропустил.

Мой URL:

example.com/v2/api/guesttest
example.com/v1/api/guesttest

, когда мы обращаемся к вышеуказанным URL-адресам, всегда возвращая один и тот же набор результатов v1.

Routes.yml

guest_api:
    path:  /{version}/api/guesttest
    controller: App\Controller\TestController::test1
    condition:  "request.attributes.get('version') == 'v1'"
    requirements: 
        version: 'v1|v2'

fos_rest.yaml

fos_rest:
    param_fetcher_listener:  true
    allowed_methods_listener:  true
    routing_loader: 
        include_format: false
    body_listener: true

    format_listener:
        rules:
            - { path: ^/api, prefer_extension: false, fallback_format: json, priorities: [ json ] }
            - { path: ^/, prefer_extension: true, fallback_format: html, priorities: [ html ] }

    versioning:
        enabled: true
        default_version: v1

TestController.php

/**
 * @Version("v1")
 * @NamePrefix("v1")
 * 
*/

class TestController extends FOSRestController
{
    public function test1() 
    {
         return new Response("success....!");
        exit;
    }
}

jms_serializer.yaml

jms_serializer:
    visitors:
        xml:
            format_output: '%kernel.debug%'

    metadata:
        cache: file
        debug: "%kernel.debug%"
        file_cache:
            dir: "%kernel.cache_dir%/serializer"
        auto_detection: true 

Ссылочные ссылки:

  1. github
  2. Symfony-verioning
...