Wiem, że istnieje sposób tworzenia wersjonowanych adresów URL dla interfejsów API REST z trasami, ale jaki jest najlepszy sposób na organizowanie kontrolerów i plików kontrolerów? Chcę móc tworzyć nowe wersje interfejsów API i nadal starsze wersje powinny działać przez co najmniej jakiś czas.Jak zorganizować różne wersje kontrolerów REST API w Laravel 4?
20
A
Odpowiedz
37
skończyło się używając nazw i katalogów pod app/kontrolerów:
/app
/controllers
/Api
/v1
/UserController.php
/v2
/UserController.php
I w plikach UserController.php ustawić nazw odpowiednio:
namespace Api\v1;
lub
namespace Api\v2;
Potem na moich trasach zrobiłem coś takiego:
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]');
});
Nie jestem pewien, że to najlepsze rozwiązanie. Jednak pozwoliło to na wersjonowanie kontrolerów w taki sposób, aby nie zakłócały one wzajemnie. Prawdopodobnie mógłbyś zrobić coś weryfikując podobne modele, jeśli to konieczne.
Powiązane problemy
- 1. Jak zorganizować parsowanie i sprawdzanie poprawności parametrów API REST?
- 2. Uzyskiwanie dostępu do kontrolerów pakietów w Laravel 4
- 3. Różne wersje msvcrt w kodach
- 4. Jak zorganizować API URL w Objective-C
- 5. CORS z Laravel 4
- 6. Wyjątki API w Laravel 5
- 7. Laravel 4 definiujące kontrolery RESTful
- 8. Routing do kontrolera nie w laravel 4
- 9. Jak zachować różne wersje językowe tego samego języka w Django?
- 10. Jak ponownie przetworzyć różne wersje obrazu w Carriewave?
- 11. Czy można mieć dwie różne wersje Perla?
- 12. testowanie filtrów w laravel 4
- 13. Dlaczego istnieją różne wersje uwalniania pytona
- 14. obsługuje różne wersje Office z Office Automation
- 15. Różne wersje Netty i ich cele
- 16. Anuluj ciasteczko Laravel 4
- 17. Jak: masa przypisać aktualizację w Laravel 4?
- 18. Jak automatycznie ładować "biblioteki" w laravel 4?
- 19. Jak usunąć plik w laravel 4
- 20. Laravel RESTful wersja wersjonowania interfejsu API
- 21. Laravel 4 Obrazy HTML
- 22. Przesyłanie pliku Laravel 4
- 23. Szablony gałązkowe w Laravel 4
- 24. Jak chronić prywatne REST API
- 25. Laravel 4 - Przesyłanie plików
- 26. Laravel 4 - Błędy połowu
- 27. Laravel 4 jquery żądanie Ajaxa
- 28. MethodNotAllowedHttpException laravel-4
- 29. System wtyczek Laravel 4
- 30. Jak uruchomić różne wersje jQuery na tej samej stronie?
Kiedy używałem tej metody, musiałem odwoływać się do każdej klasy spoza obszaru nazw przy użyciu pełnej ścieżki (przykład: \ Input, \ App) –
Możesz również dodać instrukcję 'use App;'. Tak działają przestrzenie nazw. –
@ iah.vector - mają problem z wersją, tylko musi kontroler idzie do v1 lub modelu, zadania, żądania i ... także musi iść do folderu vesrion? –