diff --git a/mayan/apps/rest_api/classes.py b/mayan/apps/rest_api/classes.py index 4bb3904210..919f7acfcc 100644 --- a/mayan/apps/rest_api/classes.py +++ b/mayan/apps/rest_api/classes.py @@ -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