Skip to main content

Middleware for validating basic JSON-RPC requests

Project description

Swarmauri Logo

PyPI - Downloads Hits PyPI - Python Version PyPI - License PyPI - swarmauri_middleware_jsonrpc


Swarmauri Middleware JsonRpc

Middleware that performs simple validation of JSON-RPC requests.

Features

  • Validates JSON request bodies for JSON-RPC payloads when the Content-Type header starts with application/json.
  • Returns 400 Bad Request with a plain-text error when the body contains invalid JSON.
  • Ensures JSON object payloads define a jsonrpc field, responding with 400 Bad Request if it is missing.

Installation

Install the middleware with your preferred Python packaging workflow:

pip install swarmauri_middleware_jsonrpc
poetry add swarmauri_middleware_jsonrpc
uv add swarmauri_middleware_jsonrpc
uv pip install swarmauri_middleware_jsonrpc

Usage

from fastapi import FastAPI
from swarmauri_middleware_jsonrpc import JsonRpcMiddleware

app = FastAPI()
app.middleware("http")(JsonRpcMiddleware().dispatch)

The middleware integrates with FastAPI's app.middleware("http") hook and is compatible with the MiddlewareBase ecosystem. Once registered, every incoming JSON request is validated before reaching subsequent middleware or route handlers.

Request Validation

  • Requests without an application/json content type bypass the middleware.
  • Malformed JSON bodies are rejected with a 400 response containing the message Invalid JSON.
  • JSON objects missing the jsonrpc key are rejected with a 400 response and the message Missing jsonrpc field.

Want to help?

If you want to contribute to swarmauri-sdk, read up on our guidelines for contributing that will help you get started.

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

swarmauri_middleware_jsonrpc-0.8.0.dev33.tar.gz (6.9 kB view details)

Uploaded Source

Built Distribution

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

File details

Details for the file swarmauri_middleware_jsonrpc-0.8.0.dev33.tar.gz.

File metadata

  • Download URL: swarmauri_middleware_jsonrpc-0.8.0.dev33.tar.gz
  • Upload date:
  • Size: 6.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.3 {"installer":{"name":"uv","version":"0.10.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for swarmauri_middleware_jsonrpc-0.8.0.dev33.tar.gz
Algorithm Hash digest
SHA256 3801671fec61f18cfb91c88e4102b3bac2c7da204eb4f0c95f2cd226db553367
MD5 f2b0b24cbade78c268a389ff536ec224
BLAKE2b-256 46212373ab9ffc0c895064395b950e82d433f6af564b518db892d386be236e3a

See more details on using hashes here.

File details

Details for the file swarmauri_middleware_jsonrpc-0.8.0.dev33-py3-none-any.whl.

File metadata

  • Download URL: swarmauri_middleware_jsonrpc-0.8.0.dev33-py3-none-any.whl
  • Upload date:
  • Size: 7.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.3 {"installer":{"name":"uv","version":"0.10.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for swarmauri_middleware_jsonrpc-0.8.0.dev33-py3-none-any.whl
Algorithm Hash digest
SHA256 4c2fa8f11d64ddbb5a3fc233a4ed5970332ae8b404ddafd82d155a6a96c75cbb
MD5 55f75c5fc11c287598de10ed41c9c96e
BLAKE2b-256 59eb9c318ffd8f9af500798170f91a64256df3406738085b85b2910d6b00691f

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