John Davidson

php - Laravel Lumen Versioning

0 comments
Message:


We Have a Mobile App Rest API that has more than 70 routes and 12 controllers and folders structure look like,


/app
/Http
/Controllers
/Api
/v1
/UserController.php
/...other 11 controllers
/v2


And routes :


  $router->group(['prefix' => 'Api/V1'], function () use ($router) {

$router->post('SignIn','Api\V1\UserController@SignIn');
$router->post('Verify','Api\V1\UserController@Verify');
..... other routes

});

After 8 months we need now to change some functions responses and add new functions to the UserController.php only (Other Controllers and routes have no updates) so my question here is how to create the V2 of the API in this situation?


Do we have to recreate all the unaffected other 11 Controllers and add the 70 routes to web.php under V2 prefix? or do I missing something here appreciate your help



My Answer:
In this situation, you can create a new version (V2) of the UserController.php and update the routes accordingly. You do not need to recreate all the unaffected controllers and routes.

Here's how you can create the V2 of the API:

1. Create a new folder for V2 inside the Controllers folder:

/app
/Http
/Controllers
/Api
/v1
/UserController.php
/...other 11 controllers
/v2
/UserController.php


2. Update the routes in web.php to include the new UserController.php under the V2 prefix:

$router->group(['prefix' => 'Api/V1'], function () use ($router) {
$router->post('SignIn','Api\V1\UserController@SignIn');
$router->post('Verify','Api\V1\UserController@Verify');
..... other routes
});

$router->group(['prefix' => 'Api/V2'], function () use ($router) {
$router->post('NewFunction','Api\V2\UserController@NewFunction');
..... other routes for V2
});


By following these steps, you can create a new version (V2) of the API without having to recreate all the unaffected controllers and routes. This approach allows you to easily manage and maintain different versions of your API.

Rate this post

4 of 5 based on 3133 votes

Comments




© 2024 Hayatsk.info - Personal Blogs Platform. All Rights Reserved.
Create blog  |  Privacy Policy  |  Terms & Conditions  |  Contact Us