Как отличить версию API от Zend маршрутизации

Я недавно взял старый проект клиента. Первоначально он был разработан с использованием Zend Framework, который является новым для меня. Я пытаюсь изменить правильный файл, но у них есть три версии API.

в файле module.config маршрут имеет вид:

'api.rest.social-credential' => array(
'type' => 'Segment',
'options' => array(
'route' => '/social-credential[/:social_credential_id]',
'scheme' => 'http',
'defaults' => array(
'controller' => 'Api\\V1\\Rest\\SocialCredential\\Controller',
),
),
),

Для меня это означает, что контроллер, на который я должен смотреть, это v1 или Api\\V1\\Rest\\SocialCredential\\Controller Однако, просматривая код и видя, как сервер отвечает, он явно работает под управлением v3.

Два контроллера определены следующим образом:
v1

'Api\\V1\\Rest\\SocialCredential\\Controller' => array(
'listener' => 'Api\\V1\\Rest\\SocialCredential\\SocialCredentialResource',
'route_name' => 'api.rest.social-credential',
'route_identifier_name' => 'social_credential_id',
'collection_name' => 'social_credential',
'entity_http_methods' => array(
0 => 'PATCH',
),
'collection_http_methods' => array(),
'collection_query_whitelist' => array(),
'page_size' => '25',
'page_size_param' => '',
'entity_class' => 'Api\\V1\\Rest\\SocialCredential\\SocialCredentialEntity',
'collection_class' => 'Api\\V1\\Rest\\SocialCredential\\SocialCredentialCollection',
'service_name' => 'SocialCredential',
),

v3

'Api\\V3\\Rest\\SocialCredential\\Controller' => array(
'listener' => 'Api\\V3\\Rest\\SocialCredential\\SocialCredentialResource',
'route_name' => 'api.rest.social-credential',
'route_identifier_name' => 'social_credential_id',
'collection_name' => 'social_credential',
'entity_http_methods' => array(
0 => 'PATCH',
1 => 'DELETE',
),
'collection_http_methods' => array(),
'collection_query_whitelist' => array(),
'page_size' => '25',
'page_size_param' => '',
'entity_class' => 'Api\\V3\\Rest\\SocialCredential\\SocialCredentialEntity',
'collection_class' => 'Api\\V3\\Rest\\SocialCredential\\SocialCredentialCollection',
'service_name' => 'SocialCredential',
),

В файле module.config я не нахожу ничего, что могло бы заставить меня поверить, что v3 должна быть целью, отличной от этого определения. Либо я что-то упускаю, либо я не понимаю, как работает Zend-маршрутизация. Может ли кто-нибудь пролить свет на это, пожалуйста?

0

Решение

Наконец нашел его, default_version под zf-версионированием

'zf-versioning' => array(
'uri' => array(
...
13 => 'api.rest.social-credential',
),
'default_version' => 3,
),

Больше информации здесь: https://github.com/zfcampus/zf-versioning

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]