I created a project and 5 applications
Now the problem is how many times the particular api is used by all or any particular user
Can any one help me
We can create new api or anything but I need output for above
CodePudding user response:
Try to use request/response signals.
Signals sent by the core framework when processing a request.
django.core.signals.request_started
Then add signals receiver like this
from django.dispatch import receiver
@receiver(request_finished)
def my_callback(sender, **kwargs):
print("Request finished!")```
CodePudding user response:
You need to create a model to save the API counts of the user.
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)
Using the django middlewares, inside the process_request method, you can increment the count of API (URL and view_name are inside the request object) for a user if request is authenticated, otherwise use null in the user field.
So, you can show per-user API counts as well as total-counts of a particular API by querying that model.