Coverage for conf/urls/__init__.py: 100%
16 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-07 06:14 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-07 06:14 +0000
1"""
2URL configuration for the Openverse API.
4For more information on this file, see
5https://docs.djangoproject.com/en/4.2/topics/http/urls/
6"""
8from django.contrib import admin
9from django.urls import include, path
10from django.views.generic import RedirectView, TemplateView
11from rest_framework.routers import SimpleRouter
13from api.views.audio_views import AudioViewSet
14from api.views.health_views import HealthCheck
15from api.views.image_views import ImageViewSet
16from conf.urls.auth_tokens import urlpatterns as auth_tokens_urlpatterns
17from conf.urls.deprecations import urlpatterns as deprecations_urlpatterns
18from conf.urls.openapi import urlpatterns as openapi_urlpatterns
21versioned_paths = [
22 path("", include(openapi_urlpatterns)), # OpenAPI
23 path("", include(auth_tokens_urlpatterns)), # Authentication endpoints
24 path("", include(deprecations_urlpatterns)), # Deprecated, redirects to new URL
25]
27router = SimpleRouter(use_regex_path=False)
28router.register("audio", AudioViewSet, basename="audio")
29router.register("images", ImageViewSet, basename="image")
30versioned_paths += router.urls
32urlpatterns = [
33 path("", RedirectView.as_view(pattern_name="root")),
34 path("admin/", admin.site.urls),
35 path("healthcheck/", HealthCheck.as_view(), name="health"),
36 path("v1/", include(versioned_paths)),
37] + [
38 path(
39 f"{file}",
40 TemplateView.as_view(
41 template_name=file,
42 content_type="text/plain",
43 ),
44 )
45 for file in ["robots.txt", "ai.txt"]
46]