From 062afc5b440c683cdbaad99a95944916c1c471c9 Mon Sep 17 00:00:00 2001 From: lebaudantoine Date: Thu, 2 Oct 2025 23:21:41 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8(backend)=20introduce=20an=20external?= =?UTF-8?q?=20API=20router?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Prepare for the introduction of new endpoints reserved for external applications. Configure the required router and update the Helm chart to ensure that the Kubernetes ingress properly routes traffic to these new endpoints. It is important to support independent versioning of both APIs. Base route’s name aligns with PR #195 on lasuite/drive, opened by @lunika --- src/backend/core/external_api/__init__.py | 1 + src/backend/core/urls.py | 11 +++++++++ src/backend/meet/settings.py | 1 + src/helm/meet/Chart.yaml | 2 +- src/helm/meet/templates/ingress.yaml | 28 +++++++++++++++++++++++ 5 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 src/backend/core/external_api/__init__.py diff --git a/src/backend/core/external_api/__init__.py b/src/backend/core/external_api/__init__.py new file mode 100644 index 00000000..cc93e5bb --- /dev/null +++ b/src/backend/core/external_api/__init__.py @@ -0,0 +1 @@ +"""Meet core external API endpoints""" diff --git a/src/backend/core/urls.py b/src/backend/core/urls.py index 98969f18..13236d3c 100644 --- a/src/backend/core/urls.py +++ b/src/backend/core/urls.py @@ -17,6 +17,9 @@ router.register( "resource-accesses", viewsets.ResourceAccessViewSet, basename="resource_accesses" ) +# - External API +external_router = DefaultRouter() + urlpatterns = [ path( f"api/{settings.API_VERSION}/", @@ -28,4 +31,12 @@ urlpatterns = [ ] ), ), + path( + f"external-api/{settings.EXTERNAL_API_VERSION}/", + include( + [ + *external_router.urls, + ] + ), + ), ] diff --git a/src/backend/meet/settings.py b/src/backend/meet/settings.py index 31b64ec2..be552570 100755 --- a/src/backend/meet/settings.py +++ b/src/backend/meet/settings.py @@ -69,6 +69,7 @@ class Base(Configuration): USE_SWAGGER = False API_VERSION = "v1.0" + EXTERNAL_API_VERSION = "v1.0" DATA_DIR = values.Value(path.join("/", "data"), environ_name="DATA_DIR") diff --git a/src/helm/meet/Chart.yaml b/src/helm/meet/Chart.yaml index 9b285e65..b15abdbd 100644 --- a/src/helm/meet/Chart.yaml +++ b/src/helm/meet/Chart.yaml @@ -1,4 +1,4 @@ apiVersion: v2 type: application name: meet -version: 0.0.12 +version: 0.0.13-beta.1 diff --git a/src/helm/meet/templates/ingress.yaml b/src/helm/meet/templates/ingress.yaml index a6406560..8f15f761 100644 --- a/src/helm/meet/templates/ingress.yaml +++ b/src/helm/meet/templates/ingress.yaml @@ -74,6 +74,20 @@ spec: serviceName: {{ include "meet.backend.fullname" . }} servicePort: {{ .Values.backend.service.port }} {{- end }} + - path: /external-api/ + {{- if semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion }} + pathType: Prefix + {{- end }} + backend: + {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }} + service: + name: {{ include "meet.backend.fullname" . }} + port: + number: {{ .Values.backend.service.port }} + {{- else }} + serviceName: {{ include "meet.backend.fullname" . }} + servicePort: {{ .Values.backend.service.port }} + {{- end }} {{- with .Values.ingress.customBackends }} {{- toYaml . | nindent 10 }} {{- end }} @@ -110,6 +124,20 @@ spec: serviceName: {{ include "meet.backend.fullname" $ }} servicePort: {{ $.Values.backend.service.port }} {{- end }} + - path: /external-api/ + {{- if semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion }} + pathType: Prefix + {{- end }} + backend: + {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }} + service: + name: {{ include "meet.backend.fullname" $ }} + port: + number: {{ $.Values.backend.service.port }} + {{- else }} + serviceName: {{ include "meet.backend.fullname" $ }} + servicePort: {{ $.Values.backend.service.port }} + {{- end }} {{- with $.Values.ingress.customBackends }} {{- toYaml . | nindent 10 }} {{- end }}