2015-06-12 4 views
0

У меня есть api с двумя разными версиями v1 и v2, оба из которых имеют одинаковые конечные точки. Но способ, которым я обрабатываю сеансы, отличается, каким будет чистый способ обработки файлов маршрутов и знать, какой пользователь использует api-версия. Я использую Laravel 4.1Обработка маршрутов в laravel

Пример маршрута:

/v1/getsome/1 
/v2/getsome/1 

Заранее спасибо

+0

это довольно чистый. Вы получаете какую-то ошибку, где-то застряли и т. Д.? –

+0

Похоже, это можно решить с помощью одного контроллера. Я бы перешел в версию как параметр. Например: 'Route :: get ('getsome/{id}/{version} /', 'APIController @ getsome()');' – brokekidweb

+0

@brokekidweb, поскольку мне нужно вызвать тот же контроллер и функцию, только в сессии – StateLess

ответ

1

v1/v2 может легко быть заполнителем, так что в будущем вы могли бы изменить/увеличить контроль версий, не нарушая апи

Route::get('{version}/getSome/{id}', ['as' => 'getstome', 'uses' => '[email protected]'); 

И затем вы обрабатываете версию в методе cotnroller.

Или вы можете использовать префикс (я предпочел бы это), так что вам не нужно указывать версию в маршрутах:

Route::group(['prefix' => 'v1'], function(){ 
    Route::get('getsome/{id}', ....); 
}; 
+0

hey prefixing кажется более чистым, но как обрабатывать разные версии без дублирования – StateLess

+0

просто как использовать несколько префиксов? – StateLess

+0

Используйте префиксы и добавьте промежуточное ПО на маршрут v2, который будет обрабатывать ваши проблемы сеанса до того, как он перейдет к контроллеру. – user3158900

0

Используйте версию в качестве параметра в маршруте, то обрабатывайте версию в своем контроллере.

Route::get('getsome/{id}/{version}/', '[email protected]()')->where('version', '[1-2]+'); 
Смежные вопросы