Skip to content

s-bose/arrest

Repository files navigation

Arrest

Tests

codecov

PyPi

Enable data validation for REST APIs.

Built on top of Pydantic and httpx. Arrest is like a postman client for your microservice apis. It provides a simple layer of Pydantic encapsulation over Httpx HTTP calls to ensure structural integrity of your api definitions in a single file, as well as provide Pydantic's strength of data validation.

Installation

pip install arrest

Getting Started

from arrest import Resource, Service
from arrest.exceptions import ArrestHTTPException


xyz_service = Service(
    name="xyz",
    url="http://www.xyz-service.default.local.cluster:80",
    resources=[
        Resource(
            route="/users",
            handlers=[
                ("GET", "/"),
                ("GET", "/{user_id:int}"),
                ("POST", "/")
            ]
        )
    ]
)

try:
    response = await xyz_service.users.get("/123")
except ArrestHTTPException as exc:
    logging.warning(f"{exc.status_code} {exc.data}")

About

Arrest is a small utility to easily structure and validate your REST api calls using pydantic and httpx

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages