20
경로가있는 REST API의 버전이있는 URL을 만드는 방법이 있지만 컨트롤러 및 컨트롤러 파일을 구성하는 가장 좋은 방법은 무엇입니까? 새 버전의 API를 만들 수 있으며 이전 버전을 계속 실행하는 것이 좋습니다.Laravel 4에서 다른 버전의 REST API 컨트롤러를 구성하는 방법은 무엇입니까?
경로가있는 REST API의 버전이있는 URL을 만드는 방법이 있지만 컨트롤러 및 컨트롤러 파일을 구성하는 가장 좋은 방법은 무엇입니까? 새 버전의 API를 만들 수 있으며 이전 버전을 계속 실행하는 것이 좋습니다.Laravel 4에서 다른 버전의 REST API 컨트롤러를 구성하는 방법은 무엇입니까?
I 앱/컨트롤러에서 이름 공간과 디렉토리를 사용하여 종료 : 나는 그에 따라 네임 스페이스를 설정
/app
/controllers
/Api
/v1
/UserController.php
/v2
/UserController.php
을 그리고 UserController.php 파일에 :
namespace Api\v1;
또는
namespace Api\v2;
을 그런 다음 내 경로에서 다음과 같이했습니다.
Route::group(['prefix' => 'api/v1'], function() {
Route::get('user', 'Api\v1\[email protected]');
Route::get('user/{id}', 'Api\v1\[email protected]');
});
Route::group(['prefix' => 'api/v2'], function() {
Route::get('user', 'Api\v2\[email protected]');
Route::get('user/{id}', 'Api\v2\[email protected]');
});
나는 이것이 최선의 해결책이라고 생각하지 않습니다. 그러나 서로 간섭하지 않는 방식으로 컨트롤러 버전을 허용했습니다. 필요한 경우 모델과 유사하게 검증 할 수 있습니다.
이 방법을 사용하면 전체 경로 (예 : \ Input, \ App)를 사용하여 이름 공간 외부의 모든 클래스를 참조해야했습니다. –
'use App;'문을 추가 할 수도 있습니다. 그것이 네임 스페이스가 작동하는 방식입니다. –
@ iah.vector - 버전에 문제가 있습니다. 컨트롤러 만 v1 또는 모델, 작업, 요청에 들어가야 만합니다 ... 또한 vesrion 폴더로 이동해야합니까? –