diff --git a/flask_restx/namespace.py b/flask_restx/namespace.py index 6d55fabe..0c91e383 100644 --- a/flask_restx/namespace.py +++ b/flask_restx/namespace.py @@ -7,7 +7,7 @@ from flask.views import http_method_funcs from ._http import HTTPStatus -from .errors import abort +from .errors import abort, ValidationError from .marshalling import marshal, marshal_with from .model import Model, OrderedModel, SchemaModel from .reqparse import RequestParser @@ -15,7 +15,7 @@ # Container for each route applied to a Resource using @ns.route decorator ResourceRoute = namedtuple("ResourceRoute", "resource urls route_doc kwargs") - +DOC_IDS = [] # List all document ids used. class Namespace(object): """ @@ -129,6 +129,9 @@ def _build_doc(self, cls, doc): def doc(self, shortcut=None, **kwargs): """A decorator to add some api documentation to the decorated object""" if isinstance(shortcut, str): + if shortcut in DOC_IDS: + raise ValidationError("Doc description already in use by another method!") + DOC_IDS.append(shortcut) kwargs["id"] = shortcut show = shortcut if isinstance(shortcut, bool) else True