Refactor rest_api app and the method end points are registered. All apps API URL endpoints are now registered under the 'rest_api' namespace.
This commit is contained in:
@@ -7,72 +7,46 @@ from rest_framework.authtoken.views import ObtainAuthToken
|
||||
from rest_framework.response import Response
|
||||
from rest_framework.reverse import reverse
|
||||
|
||||
from .classes import APIEndPoint
|
||||
from .serializers import APIAppSerializer, APISerializer, APIVersionSerializer
|
||||
from .classes import APIVersion, APIEndPoint
|
||||
from .serializers import APIAppSerializer, APIVersionSerializer
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
registered_version_0_endpoints = [
|
||||
registered_version_1_endpoints = [
|
||||
]
|
||||
|
||||
|
||||
class APIBase(generics.GenericAPIView):
|
||||
class APIBase(generics.RetrieveAPIView):
|
||||
"""
|
||||
Main entry point of the API.
|
||||
"""
|
||||
|
||||
serializer_class = APISerializer
|
||||
|
||||
def get(self, request, format=None):
|
||||
return Response([
|
||||
{
|
||||
'name': 'Version 0', 'url': reverse(
|
||||
'api-version-0', request=request, format=format
|
||||
)
|
||||
}
|
||||
])
|
||||
|
||||
|
||||
class Version_0(generics.GenericAPIView):
|
||||
"""
|
||||
API version 0 entry points.
|
||||
"""
|
||||
|
||||
serializer_class = APIVersionSerializer
|
||||
|
||||
def get(self, request, format=None):
|
||||
return Response({
|
||||
'apps': [
|
||||
{
|
||||
'name': unicode(endpoint),
|
||||
'url': reverse('api-version-0-app',
|
||||
args=[unicode(endpoint)], request=request,
|
||||
format=format
|
||||
)
|
||||
} for endpoint in APIEndPoint.get_all()
|
||||
],
|
||||
})
|
||||
def get_object(self):
|
||||
return APIVersion()
|
||||
|
||||
|
||||
class APIAppView(generics.GenericAPIView):
|
||||
class APIVersionView(generics.ListAPIView):
|
||||
"""
|
||||
API version entry points.
|
||||
"""
|
||||
|
||||
serializer_class = APIAppSerializer
|
||||
|
||||
def get_queryset(self):
|
||||
return APIEndPoint.get_all()
|
||||
|
||||
|
||||
class APIAppView(generics.RetrieveAPIView):
|
||||
"""
|
||||
Entry points of the selected app.
|
||||
"""
|
||||
|
||||
serializer_class = APIAppSerializer
|
||||
|
||||
def get(self, request, app_name, format=None):
|
||||
api_app = APIEndPoint.get(app_name)
|
||||
|
||||
return Response(
|
||||
{
|
||||
'name': api_app.name,
|
||||
'url': reverse(
|
||||
'api-version-0-app', args=[unicode(api_app.name)],
|
||||
request=request, format=format
|
||||
)
|
||||
}
|
||||
)
|
||||
def get_object(self):
|
||||
return APIEndPoint.get(self.kwargs['app_name'])
|
||||
|
||||
|
||||
class BrowseableObtainAuthToken(ObtainAuthToken):
|
||||
|
||||
Reference in New Issue
Block a user