chore(api): document version endpoint

This commit is contained in:
jo 2022-07-19 18:53:06 +02:00 committed by Jonas L
parent 0e3ede5a1a
commit 1f7c2fa0ab
8 changed files with 40 additions and 15 deletions

View File

@ -1,3 +1,4 @@
from django.urls import path
from rest_framework import routers
from .views import (
@ -9,6 +10,7 @@ from .views import (
ThirdPartyTrackReferenceViewSet,
UserTokenViewSet,
UserViewSet,
VersionView,
)
router = routers.DefaultRouter()
@ -21,4 +23,7 @@ router.register("user-tokens", UserTokenViewSet)
router.register("celery-tasks", CeleryTaskViewSet)
router.register("third-party-track-references", ThirdPartyTrackReferenceViewSet)
urls = router.urls
urls = [
*router.urls,
path("version/", VersionView.as_view()),
]

View File

@ -1,4 +1,5 @@
from .auth import LoginAttemptSerializer, UserTokenSerializer
from .info import VersionSerializer
from .preference import PreferenceSerializer, StreamSettingSerializer
from .service import ServiceRegisterSerializer
from .user import UserSerializer

View File

@ -0,0 +1,6 @@
from rest_framework import serializers
# pylint: disable=abstract-method
class VersionSerializer(serializers.Serializer):
api_version = serializers.CharField()

View File

@ -1,6 +1,6 @@
from .auth import LoginAttemptViewSet, UserTokenViewSet
from .info import VersionView
from .preference import PreferenceViewSet, StreamSettingViewSet
from .service import ServiceRegisterViewSet
from .user import UserViewSet
from .version import version
from .worker import CeleryTaskViewSet, ThirdPartyTrackReferenceViewSet

View File

@ -0,0 +1,14 @@
from django.conf import settings
from rest_framework.permissions import AllowAny
from rest_framework.response import Response
from rest_framework.views import APIView
from ..serializers import VersionSerializer
class VersionView(APIView):
permission_classes = [AllowAny]
serializer_class = VersionSerializer
def get(self, request):
return Response({"api_version": settings.API_VERSION})

View File

@ -1,10 +0,0 @@
from django.conf import settings
from rest_framework.decorators import api_view, permission_classes
from rest_framework.permissions import AllowAny
from rest_framework.response import Response
@api_view(["GET"])
@permission_classes((AllowAny,))
def version(request, *args, **kwargs):
return Response({"api_version": settings.API_VERSION})

View File

@ -8,7 +8,6 @@ from django.urls import include, path
from drf_spectacular.views import SpectacularAPIView, SpectacularSwaggerView
from .core.router import urls as core_urls
from .core.views import version
from .history.router import urls as history_urls
from .podcasts.router import urls as podcasts_urls
from .schedule.router import urls as schedule_urls
@ -24,7 +23,6 @@ api_urls += storage_urls
urlpatterns = [
path("api/v2/", include(api_urls)),
path("api/v2/version/", version),
path(
"api/v2/schema/",
SpectacularAPIView.as_view(),

View File

@ -5070,7 +5070,11 @@ paths:
- {}
responses:
"200":
description: No response body
content:
application/json:
schema:
$ref: "#/components/schemas/Version"
description: ""
/api/v2/webstream-metadata/:
get:
operationId: webstream_metadata_list
@ -7928,6 +7932,13 @@ components:
- item_url
- token
- user
Version:
type: object
properties:
api_version:
type: string
required:
- api_version
Webstream:
type: object
properties: