Metadata-Version: 2.1
Name: api-session
Version: 1.3.2
Summary: requests.Session to work with JSON APIs
Home-page: https://github.com/Bixoto/api-session
License: MIT
Author: Baptiste Fontaine
Author-email: baptiste@bixoto.com
Requires-Python: >=3.8,<4.0
Classifier: Development Status :: 5 - Production/Stable
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3
Requires-Dist: requests (>=2.26.0,<3.0.0)
Description-Content-Type: text/markdown

# api-session

**api-session** is a small module providing an extended `requests.Session` class to work with JSON APIs.

We use it at [Bixoto](https://bixoto.com/) as a basis for JSON API clients such as [PyMagento][] or
[PyBigBuy][].

It aims at factoring the common parts of these clients while staying very lightweight (<100 SLOC).

[PyMagento]: https://github.com/Bixoto/PyMagento
[PyBigBuy]: https://github.com/Bixoto/PyBigBuy

## Features

* base URL: the base API URL is given only once on object creation; subsequent calls use `.get("/path")`
* read-only flag: if given, prevents the API from doing `POST` and similar calls
* `requests.Session` inheritance: the class inherits from `requests.Session`, so it stays 100% compatible with it

## Install

    pip install api-session

Dependency: Python 3.8+.

## Usage

```python3
from api_session import APISession

client = APISession("https://httpbin.org")

client.get_json_api("/get")
# => {...}
```

