Chúng tôi sử dụng Django để xây dựng ứng dụng web phụ trợ, cung cấp RESTful API cho ứng dụng Ember.Khung công tác Django REST - nhiều mô hình/API?
Vì vậy, (evolutionally), chúng tôi bắt đầu với cấu trúc đơn giản sau đây:
project root
|
|-app1/models.py .... no views.py
|
|-app2/models.py .... no views.py
|
|-app3/models.py .... no views.py
|
\- restapi - provides REST API for app*: huge views.py, huge serializers.py, huge test.py
này rất dễ sử dụng, đặc biệt là với quan điểm có thể xem của DRF:
@api_view(['GET'])
def api_root(request, format=None):
return Response(
{
'users': reverse('current-user-detail', request=request),
'interfacesettings': reverse('interface-settings', request=request),
............................................................
'preferences': reverse('preferences', request=request),
}
)
Không lâu chúng tôi đã có mô hình đủ/API để làm cho cách restapi.app của chúng tôi quá phức tạp và lộn xộn và chúng tôi bắt đầu xem xét việc sử dụng một cái gì đó hợp lý hơn:
project root
|
|-app1/models.py .... views.py, serializers.py, tests.py
|
|-app2/models.py .... views.py, serializers.py, tests.py
|
|-app3/models.py .... views.py, serializers.py, tests.py
|
\- we do not need rest api anymore (but where will we put our api_root?)
Mặt khác, bây giờ chúng ta có tất cả các kiểm tra phức tạp (liên quan đến một vài mô hình) ở một nơi thuận tiện. Và chúng tôi sử dụng lại các chức năng của serializers rất nhiều. Và chúng ta có một api_root. Vì vậy, có lẽ chúng tôi có thể có một cái gì đó như thế này:
project root
|
|-app1/models.py .... views.py (app1 API), serializers.py, tests.py
|
|-app2/models.py .... views.py (app2 API), serializers.py, tests.py
|
|-app3/models.py .... views.py (app3 API), serializers.py, tests.py
|
\- restapi - views.py (api_root), tests.py for complicated tests and serializers.py for common functions
Phương pháp nào tốt hơn? Và các phương pháp hay nhất phổ biến ở đây là gì? Có dự án mở nào chúng tôi có thể xem không?