2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-04-29 12:06:44 +00:00

Merge pull request #1371 from SchrodingersGat/api-404

Adds "404" response when asking for an API endpoint that does not exist
This commit is contained in:
Oliver 2021-02-28 07:34:34 +11:00 committed by GitHub
commit 5cdae04c62
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 23 additions and 3 deletions

View File

@ -48,6 +48,23 @@ class InfoView(AjaxView):
return JsonResponse(data)
class NotFoundView(AjaxView):
"""
Simple JSON view when accessing an invalid API view.
"""
permission_classes = [permissions.AllowAny]
def get(self, request, *args, **kwargs):
data = {
'details': _('API endpoint not found'),
'url': request.build_absolute_uri(),
}
return JsonResponse(data, status=404)
class AttachmentMixin:
"""
Mixin for creating attachment objects,

View File

@ -43,7 +43,7 @@ from .views import DynamicJsView
from common.views import SettingEdit
from .api import InfoView
from .api import InfoView, NotFoundView
from .api import ActionPluginView
from users.urls import user_urls
@ -70,6 +70,9 @@ apipatterns = [
# InvenTree information endpoint
url(r'^$', InfoView.as_view(), name='api-inventree-info'),
# Unknown endpoint
url(r'^.*$', NotFoundView.as_view(), name='api-404'),
]
settings_urls = [

View File

@ -5,8 +5,8 @@ from . import api
user_urls = [
url(r'^(?P<pk>[0-9]+)/?$', api.UserDetail.as_view(), name='user-detail'),
url(r'roles', api.RoleDetails.as_view(), name='api-user-roles'),
url(r'token', api.GetAuthToken.as_view(), name='api-token'),
url(r'roles/?$', api.RoleDetails.as_view(), name='api-user-roles'),
url(r'token/?$', api.GetAuthToken.as_view(), name='api-token'),
url(r'^$', api.UserList.as_view()),
]