INNER CODE UNIT · Python

_inject_headers

laurentS/slowapi · slowapi/extension.py:378

    def _inject_headers(
        self, response: Response, current_limit: Tuple[RateLimitItem, List[str]]
    ) -> Response:
        if self.enabled and self._headers_enabled and current_limit is not None:
            if not isinstance(response, Response):
                raise Exception(
                    "parameter `response` must be an instance of starlette.responses.Response"
                )
            try:
                window_stats: Tuple[int, int] = self.limiter.get_window_stats(
                    current_limit[0], *current_limit[1]
                )
                reset_in = 1 + window_stats[0]
                response.headers.append(
                    self._header_mapping[HEADERS.LIMIT], str(current_limit[0].amount)
                )
                response.headers.append(
                    self._header_mapping[HEADERS.REMAINING], str(window_stats[1])

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…