Skip to main content

Library for validating and parsing HTTP response objects with decorators

Project description

Request Rule Decorators

Библиотека для валидации и парсинга HTTP-ответов с использованием декораторов.

Установка

pip install -e .

Для разработки с тестами:

pip install -e ".[dev]"

Быстрый старт

from request_rule_decorators import ResponseHandler, Validator, Parser

@ResponseHandler.handlers(
    Validator.STATUS_CODE().whitelist([200, 201]),
    Validator.CONTENT_TYPE().equals("application/json"),
    Validator.JSON("$.username").whitelist().values(["john_doe"]),
    Validator.JSON("$.age").range(18, 100),
    Parser.JSON("$.age").save_to("parsed_age"),
)
async def my_function():
    # Ваша функция, возвращающая response объект
    return response

result = await my_function()
# result.response - оригинальный response
# result.valid.ERRORS - список ошибок валидации
# result.valid.PARSED - распарсенные данные
# result.is_valid() - проверка валидации

Документация

Подробная документация доступна в файле DOCS.md

Запуск тестов

pytest tests/

Запуск демонстрационного примера

python demo.py

Структура проекта

  • request_rule_decorators/ - основной пакет библиотеки
    • dto.py - DTO классы (ValidationError, ValidationData, WithValid)
    • decorator.py - декоратор ResponseHandler
    • rules.py - фабрика правил (Validator, Parser)
    • exceptions.py - кастомные исключения
    • validators/ - валидаторы (JSON, Headers, StatusCode, ContentType, HTML)
    • parsers/ - парсеры (JSON, HTML)
  • tests/ - тесты
  • demo.py - демонстрационный файл
  • DOCS.md - подробная документация

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

request_rule_decorators-0.1.0.tar.gz (26.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

request_rule_decorators-0.1.0-py3-none-any.whl (27.6 kB view details)

Uploaded Python 3

File details

Details for the file request_rule_decorators-0.1.0.tar.gz.

File metadata

  • Download URL: request_rule_decorators-0.1.0.tar.gz
  • Upload date:
  • Size: 26.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for request_rule_decorators-0.1.0.tar.gz
Algorithm Hash digest
SHA256 41bee03e9277984efba4ad00954547ef10a863ca7607a82ef92c6bbe9270f917
MD5 d275ea589afa5555b756d49ee622dc01
BLAKE2b-256 c7c71c2ee0c2f8fcfe18d9b5f403b3c584ff58e448bd9db3a6539e5d62c24806

See more details on using hashes here.

File details

Details for the file request_rule_decorators-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for request_rule_decorators-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8be3218c528eff3dc799d627a449a13079798d32ea33a7903b0f8743aede0bdc
MD5 ab0c7d66deb039010c6c46f07aeb333f
BLAKE2b-256 2a49f365e0f314e8cb486b6d6eab78ccfbb06041f82c4e392c2341f8b6b39aad

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page