Update API urls registration to be lazy and ignore import time errors
This commit is contained in:
@@ -1,6 +1,9 @@
|
|||||||
from __future__ import absolute_import
|
from __future__ import absolute_import
|
||||||
|
|
||||||
from django.conf.urls import include, patterns, url
|
from django.conf.urls import include, patterns, url
|
||||||
|
from django.utils.importlib import import_module
|
||||||
|
|
||||||
|
from common.utils import load_backend
|
||||||
|
|
||||||
|
|
||||||
class APIEndPoint(object):
|
class APIEndPoint(object):
|
||||||
@@ -17,18 +20,18 @@ class APIEndPoint(object):
|
|||||||
def __unicode__(self):
|
def __unicode__(self):
|
||||||
return unicode(self.name)
|
return unicode(self.name)
|
||||||
|
|
||||||
def __init__(self, name):
|
def __init__(self, name, app_name=None):
|
||||||
self.name = name
|
self.name = name
|
||||||
self.endpoints = []
|
self.endpoints = []
|
||||||
self.__class__._registry[name] = self
|
try:
|
||||||
|
api_urls = load_backend('{}.urls.api_urls'.format(app_name or name))
|
||||||
|
except Exception as exception:
|
||||||
|
# Ignore import time errors
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
self.register_urls(api_urls)
|
||||||
|
|
||||||
def add_endpoint(self, view_name, description=None):
|
self.__class__._registry[name] = self
|
||||||
self.endpoints.append(
|
|
||||||
{
|
|
||||||
'description': description,
|
|
||||||
'view_name': view_name,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
def register_urls(self, urlpatterns):
|
def register_urls(self, urlpatterns):
|
||||||
from .urls import version_0_urlpatterns
|
from .urls import version_0_urlpatterns
|
||||||
|
|||||||
Reference in New Issue
Block a user