
Security News
Vite Releases Technical Preview of Rolldown-Vite, a Rust-Based Bundler
Vite releases Rolldown-Vite, a Rust-based bundler preview offering faster builds and lower memory usage as a drop-in replacement for Vite.
drf-link-navigation-pagination
Advanced tools
Yet another pagination class for DRF to set host address by header
Yet another thirdy party package for DRF Pagination.
This package adds support to some headers that allow you to configure the behaviour of the LimitOffsetPagination class.
If you want to change de host address located on next
and previous
fields, then this is the right thing to you. Take this body as an example:
{
"links": {
"next": "http://localhost/api/v1/entities/?limit=1&offset=2",
"previous": "http://localhost/api/v1/entities/limit=1"
},
"count": 100,
"results": [
{
"id": "bc6c6868-4e4d-4381-a785-f353ee7ecce5"
}
]
}
Using a reverse proxy (like AWS API Gateway) to intermediate between your API, adding X-Drf-Change-Domain=chumaco
header to the request will make the client receive the following:
{
"links": {
"next": "http://chumaco/api/v1/entities/?limit=1&offset=2",
"previous": "http://chumaco/api/v1/entities/limit=1"
},
"count": 100,
"results": [
{
"id": "bc6c6868-4e4d-4381-a785-f353ee7ecce5"
}
]
}
This header allows you to define different limits to the pagination depending on the gateway you are exposing your API.
For example. For client A we allow a max of 50
entries, for client B we allow a max of 100
you can by injecting
this header on the client's requests.
If for some reason the client exceeds the limit he will receive a Bad Request Error:
{
"detail": "Bad limit value sent.",
"error": {
"code": "bad_limit_value"
},
"type": "API_EXCEPTION"
}
Otherwise the default paginated response is generated:
{
"links": {
"next": "https://chumaco/api/v1/entities/?limit=1&offset=2",
"previous": "https://chumaco/api/v1/entities/limit=1"
},
"count": 100,
"results": [
{
"id": "bc6c6868-4e4d-4381-a785-f353ee7ecce5"
}
]
}
To use this package after installing you need to use it's pagination class. in your settings.py
do the following:
REST_FRAMEWORK = {
"DEFAULT_PAGINATION_CLASS": "drf_link_navigation_pagination.LinkNavigationPagination",
...
}
In order to execute the tests:
pipenv run tox
FAQs
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Vite releases Rolldown-Vite, a Rust-based bundler preview offering faster builds and lower memory usage as a drop-in replacement for Vite.
Research
Security News
A malicious npm typosquat uses remote commands to silently delete entire project directories after a single mistyped install.
Research
Security News
Malicious PyPI package semantic-types steals Solana private keys via transitive dependency installs using monkey patching and blockchain exfiltration.