Добавьте точку входа http GET/POST в веб-сокет Django с каналами

Я новичок в Django и создаю сайт для бронирования.

Я создаю front-end на vue 3, а back-end на django, используя каналы.

Я реализовал websockets, но теперь пытаюсь добавить точку входа GET или POST для подтверждения по ссылке (типа "url/api/confirm/confirm_code" или "url/api/confirm/confirm_code=code") в письмо, которое я отправляю с back-end. Проблема в том, что мой back-end никогда не получает запрос.

Я пробовал так:

app_name.urls

from django.contrib import admin
from django.urls import path, include

urlpatterns: list[path] = [
    path('admin/', admin.site.urls),
    path('api/', include('app.routing')),
]

app.routing

from django.urls import path

from app.consumers.view import ViewConsumer
from app.consumers.booking import BookingConsumer
from app.consumers.account import AccountConsumer
from app.consumers.profile import ProfileConsumer
from app.http.confirm_reservation import confirm_reservation

websocket_urlpatterns = [
    path(r"ws/view/", ViewConsumer.as_asgi()),
    path(r"ws/booking/", BookingConsumer.as_asgi()),
    path(r"ws/account/", AccountConsumer.as_asgi()),
    path(r"ws/profile/", ProfileConsumer.as_asgi()),
]

urlpatterns = [
    path(r"confirm/<str:confirm_code>/", confirm_reservation, name="confirm_reservation"),
]

app.http.confirm_reservation

from django.http import JsonResponse

from app.services.booking import BookingService


def confirm_reservation(request, confirm_code: str):
    print(request)
    print(confirm_code)
    return JsonResponse(BookingService().confirm_reservation(request))

В последнюю очередь, если у вас есть предложения по созданию лучшего кода, чем я написал, пожалуйста, сообщите мне об этом в комментариях.

Спасибо.

Я использую свой собственный сайт и postman (http://192.168.1.5:8080/api/confirm/1234/), чтобы попытаться отправить код подтверждения, но на front-end приходит сообщение "Cannot GET /api/confirm/1234/", а back-end не выводит никаких данных о том, что он получил этот вызов, даже никакой ошибки.

Вернуться на верх