Часто используемые 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, запросив эту модель.