Update API urls registration to be lazy and ignore import time errors

This commit is contained in:
Roberto Rosario
2014-10-30 13:19:52 -04:00
parent 1b52b4ced8
commit 36d3041617

View File

@@ -1,6 +1,9 @@
from __future__ import absolute_import
from django.conf.urls import include, patterns, url
from django.utils.importlib import import_module
from common.utils import load_backend
class APIEndPoint(object):
@@ -17,18 +20,18 @@ class APIEndPoint(object):
def __unicode__(self):
return unicode(self.name)
def __init__(self, name):
def __init__(self, name, app_name=None):
self.name = name
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.endpoints.append(
{
'description': description,
'view_name': view_name,
}
)
self.__class__._registry[name] = self
def register_urls(self, urlpatterns):
from .urls import version_0_urlpatterns