Возможно ли прослушивать конечную точку Rest API, используя каналы django?

Целью является отправка сериализованных данных созданного объекта метода POST! Запрос будет исходить от Android/IOS приложения, созданного с помощью Flutter/Dart

Я пытаюсь использовать Django Channels Rest Framework. Но я не уверен, будет ли это работать или нет!

Приложение Flutter запрашивает этот API.

class CreateUserLocation(APIView):
"""
    POST http://127.0.0.1:4000/api/addresses/v1/create-location
"""
authentication_classes = [authentication.TokenAuthentication]
permission_classes = [permissions.IsAuthenticated]
schema = None

def post(self, request):
    data = request.data
    if data:
        try:
            user = request.user
            data['user'] = user.pk
            serializer = UserLocationSerializer(data=data)
            if serializer.is_valid(raise_exception=True):
                serializer.save()
                return Response({"success": True, "code": StatusCode.STATUS_0_CODE, "results": serializer.data})
            return Response(serializer.errors)
        except Exception as e:
            return Response({"success": False, "code": StatusCode.STATUS_3_CODE, "error": e.args})
    return Response({"success": False, "code": StatusCode.STATUS_3_CODE, "message": StatusCode.STATUS_3_MSG})

И мне нужно передать данные ответа следующего API в шаблон этого проекта.

class RetrieveUserLocation(generics.RetrieveAPIView):

authentication_classes = [authentication.TokenAuthentication]
permission_classes = [permissions.IsAuthenticated]
serializer_class = UserLocationDetailSerializer
retrieve_codes = {"success": StatusCode.STATUS_0_CODE, "error": StatusCode.STATUS_4_CODE, "message": ""}
lookup_field = "pk"
schema = None

def get_object(self):
    try:
        return UserLocation.objects.get(pk=self.kwargs["pk"])
    except UserLocation.DoesNotExist:
        raise Http404('No %s matches the given query.' % self.kwargs["pk"])

def retrieve(self, request, *args, **kwargs):
    try:
        queryset = self.get_object()
        serializer = self.get_serializer(queryset)
        return Response({
            "success": True, "code": StatusCode.STATUS_0_CODE,
            "message": StatusCode.STATUS_0_MSG, "data": serializer.data})
    except Exception as e:
        return Response({
            "success": False, "code": StatusCode.STATUS_4_CODE,
            "message": StatusCode.STATUS_4_MSG % self.kwargs['pk'], "error": e.args})
Вернуться на верх