Часто используемые api в Django

Я создал проект и 5 приложений

Теперь проблема заключается в том, сколько раз конкретный api используется всеми или любым конкретным пользователем

Может ли кто-нибудь помочь мне

Мы можем создать новый api или что-нибудь еще, но мне нужен вывод для вышеуказанного

Попробуйте использовать сигналы запроса/ответа. Сигналы, посылаемые основным фреймворком при обработке запроса. django.core.signals.request_started Затем добавьте приемник сигналов следующим образом

from django.dispatch import receiver

@receiver(request_finished)
def my_callback(sender, **kwargs):
    print("Request finished!")```

Вам необходимо создать модель для сохранения подсчетов API пользователя.

from django.db import models
from django.contrib.auth.models import User


class ApiCounts(models.Model):

    api_name = models.CharField(max_length=1024)
    user = models.ForeignKey(
        User, on_delete=models.CASCADE, related_name="api_counts", blank=True
    )
    total_count = models.PositiveBigIntegerField(default=0)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

Используя django middlewares, внутри метода process_request можно увеличить количество API (URL и имя_вида находятся внутри объекта запроса) для пользователя, если запрос аутентифицирован, иначе используйте null в поле user.

Итак, вы можете показать подсчеты API для каждого пользователя, а также общие подсчеты для определенного API, запросив эту модель.

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