Tôi mới sử dụng Laravel (4 và 5) và gần đây tôi đang làm việc trên API RESTful. Để cho phép nhiều phiên bản của API, tôi đang sử dụng URL để xác định phiên bản.Thiết kế phiên bản API RESTavel RESTful
tôi đọc theo bài này và nó dường như hầu hết mọi người sau đây phương pháp này: How to organize different versioned REST API controllers in Laravel 4?
Folders cấu trúc:
/app
/controllers
/Api
/v1
/UserController.php
/v2
/UserController.php
Và trong các tập tin UserController.php tôi đặt không gian tên cho phù hợp:
namespace Api\v1;
hoặc
namespace Api\v2;
và trong các tuyến đường:
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]');
});
URL sẽ được đơn giản http://..../api/v1 cho phiên bản 1 và http://..../api/v2 cho phiên bản. Điều này là thẳng về phía trước.
Câu hỏi của tôi là: Điều gì sẽ xảy ra nếu tôi xây dựng nâng cấp nhỏ api, hãy nói v1.1, tôi làm cách nào để tổ chức cấu trúc thư mục của mình? Suy nghĩ của tôi là điều này và nó vẫn còn tốt như dấu chấm là tên hợp lệ của các thư mục?
/app
/controllers
/Api
/v1
/UserController.php
/v1.1
/UserController.php
/v1.2
/UserController.php
/v2
/UserController.php
Ngoài ra, Tôi nên viết không gian tên như thế nào? Đây không phải là không gian tên như thế này
namespace Api\v1.1;
Có quy ước đặt tên nào tôi có thể tham khảo để sử dụng "dấu chấm" không?
Lưu ý: Tôi không muốn gọi nó là phiên bản v2 vì đây không phải là bản nâng cấp lớn.
hi đầu phun, chế độ xem của bạn khác với aeryaguzov. bạn có nghĩa là nó phải là v2 thay vì v1.1, và không thực hiện bất kỳ thay đổi nào đối với các mã v1 hiện có? –
Cảm ơn bạn đã phản hồi! Tôi đã chỉnh sửa câu trả lời. Tôi hy vọng tôi đã làm cho điểm của tôi rõ ràng hơn một chút. – nozzleman
Tôi đang xem xét việc triển khai phiên bản API. Nếu sử dụng cấu trúc phiên bản này cho v1, v2, v.v ... sẽ có bất kỳ vấn đề nào khi nhà soạn nhạc được chạy và nó có tự động tải không? – JBMcClure