2016-04-20 3 views
3

Я изучаю Laravel REST, но, возможно, это не ограничивает себя только Laravel.Как управлять дублированием кода при API управления версиями?

Чтение статей и вопросов, таких как Laravel RESTful API versioning Design или How to organize different versioned REST API controllers in Laravel 4? (и многие другие), вы понимаете, что при построении одного из них очень важно использовать API.

Но мне кажется, что это может быть очень трудным для управления различных версий вашего API с помощью разделения папок

/app 
    /controllers 
    /Api 
     /v1 
     /UserController.php 
     /v2 
     /UserController.php 

прогностических от ближайшего будущего, я легко могу представить себе, что 30 файлов на v1 и 40 файлов на v2, например, где около 20 ~ 25 файлов могут быть идентичными. Разве это не вызывает больше проблем, чем решение?

+0

Вы получили решение? –

+0

@JoseFrancis не совсем. Я не разрабатывал API с несколькими версиями, но теперь мне достаточно удобно, чтобы Laravel знал, что если бизнес требует 2 версии одного и того же контроллера, неплохо просто иметь его. Затем вы можете реорганизовать и попытаться перенести как можно больше дублирующегося кода на обычный сервис/шлюз, введенный через Laravel IoC. –

ответ

0

Если изменения достаточно велики, они, вероятно, потребуют нового Контроллера. Но если нет, вы можете передать номер версии в экземпляр Controller и перейти к тому же контроллеру. Затем используйте это число для изменения поведения.