Provided a root API view

This commit is contained in:
Jeremy Stretch 2017-03-09 15:05:01 -05:00
parent 94a29be415
commit 7e51ca9912
2 changed files with 25 additions and 1 deletions

View File

@ -2,7 +2,7 @@ from django.conf import settings
from django.conf.urls import include, url from django.conf.urls import include, url
from django.contrib import admin from django.contrib import admin
from netbox.views import home, handle_500, trigger_500 from netbox.views import APIRootView, home, handle_500, trigger_500
from users.views import login, logout from users.views import login, logout
@ -26,6 +26,7 @@ _patterns = [
url(r'^profile/', include('users.urls', namespace='users')), url(r'^profile/', include('users.urls', namespace='users')),
# API # API
url(r'^api/$', APIRootView.as_view()),
url(r'^api/circuits/', include('circuits.api.urls', namespace='circuits-api')), url(r'^api/circuits/', include('circuits.api.urls', namespace='circuits-api')),
url(r'^api/dcim/', include('dcim.api.urls', namespace='dcim-api')), url(r'^api/dcim/', include('dcim.api.urls', namespace='dcim-api')),
url(r'^api/extras/', include('extras.api.urls', namespace='extras-api')), url(r'^api/extras/', include('extras.api.urls', namespace='extras-api')),

View File

@ -1,5 +1,10 @@
import sys import sys
from rest_framework.permissions import IsAuthenticated
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework.reverse import reverse
from django.shortcuts import render from django.shortcuts import render
from circuits.models import Provider, Circuit from circuits.models import Provider, Circuit
@ -47,6 +52,24 @@ def home(request):
}) })
class APIRootView(APIView):
permission_classes = [IsAuthenticated]
def get_view_name(self):
return u"API Root"
def get(self, request, format=None):
return Response({
'circuits': reverse('circuits-api:api-root', request=request, format=format),
'dcim': reverse('dcim-api:api-root', request=request, format=format),
'extras': reverse('extras-api:api-root', request=request, format=format),
'ipam': reverse('ipam-api:api-root', request=request, format=format),
'secrets': reverse('secrets-api:api-root', request=request, format=format),
'tenancy': reverse('tenancy-api:api-root', request=request, format=format),
})
def handle_500(request): def handle_500(request):
""" """
Custom server error handler Custom server error handler