Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/floydya/declarativex

Your Declarative HTTP client library on Python
https://github.com/floydya/declarativex

api async declarative declarative-http-client fastapi graphql graphql-client httpx json pydantic python python-types python3 sync

Last synced: about 1 month ago
JSON representation

Your Declarative HTTP client library on Python

Awesome Lists containing this project

README

        

[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/declarativex?style=for-the-badge&logo=python&logoColor=FF0077&color=FFD43B)](https://pypi.org/project/declarativex)
[![PyPI - Downloads](https://img.shields.io/pypi/dw/declarativex?style=for-the-badge&link=https%3A%2F%2Fpypi.org%2Fproject%2Fdeclarativex&color=FFD43B&logoColor=FF0077&logo=ownCloud)](https://pypi.org/project/declarativex)
[![Coverage](https://img.shields.io/badge/COVERAGE-100%25-FFD43B?style=for-the-badge&logo=codecov)](https://pypi.org/project/declarativex)

# DeclarativeX: Your Declarative HTTP Client ๐Ÿš€

## Why Choose DeclarativeX? ๐Ÿคทโ€โ™‚๏ธ

Sick of writing boilerplate for every HTTP request? Headers, JSON parsing, and all that jazz?

Say hello to `DeclarativeX`!

We handle the nitty-gritty so you can focus on what really countsโ€”your core logic.

## ๐ŸŒŸ Key Features

- **Declarative Goodness**: Decorators make your life easy. Just add and go!
- **Function Over Form**: No need for classes. Check the docs for function-based setups.
- **Data Validation**: Using Pydantic? We've got your robust validation needs covered.
- **Async Ready**: Need it fast? We're async-compatible.
- **Rate Limiting**: Stay on the good side of APIs with built-in rate limiting.
- **Authentication**: Add authentication with a single line of code.
- **Automatic Retries**: We retry failed requests automatically(or reject, if you prefer).
- **Middleware Support**: Add your custom logic with ease.
- **Auto Body Parsing**: Skip manual parsing. Use a dataclass or Pydantic model for auto-magic.
- **GraphQL**: We support GraphQL queries and mutations out of the box.

## Installation ๐Ÿ› ๏ธ

```bash
pip install declarativex
```

### Available extras ๐ŸŽ

DeclarativeX comes with a few extras that you can install separately. Here's a list of available extras:

- `http2` - HTTP/2 support
- `graphql` - GraphQL support
- `brotli` - Brotli compression support

To install an extra, just add it to the end of the command:

```bash
pip install declarativex[http2,graphql,brotli]
```

## Docs ๐Ÿ“–

Find all the details at [https://declarativex.dev](https://declarativex.dev).

## Show Some Love โค๏ธ

Every contribution counts and is super appreciated! ๐Ÿ™

Liking what you see? Support the creator to keep this project thriving.

[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/E1E2OL196)