A
Project description
Python Rest API Client (WIP)
Work in progress. Aims at glueing pydantic and httpx with a simple REST API client, with dynamic generated methods. Ideally, it could be support both synchronous and asynchronous formats.
Currently it is only supporting GET Methods, since it's a work in progress. Roadmap:
- Support POST, PUT, PATCH, DELETE
- Adds Authentication support
- Adds Async invokation support
- Export generated source code
- Auto generate models from OpenAPI (3) Spec
Usage
CHUCK_BASE_URL = "https://api.chucknorris.io/jokes"
# Imports
from pydantic import BaseModel, HttpUrl
from rest_api_client.lib import RestAPI, Endpoint, HTTPMethod
import httpx
# Optionally declare your model classes
class JokeModel(BaseModel):
id: str
created_at: str
updated_at: str
icon_url: str
categories: list
url: str
value: str
# Declare your API endpoints
endpoints = [
# Fully descriptive declaration.
Endpoint(
name="get_joke",
path="/random",
method=HTTPMethod.GET,
model=JokeModel,
query_parameters=[("category", str)],
),
# No model provided, result comes back as a dictionary.
Endpoint(
name="get_categories",
path="/categories",
method=HTTPMethod.GET,
),
# Omit HTTP Method, it gets inferred from the endpoint name.
Endpoint(name="get_search", path="/search", query_parameters=[("query", str)]),
]
# Instantiate your HTTP client session. Should also work with requests
with httpx.Client() as client:
api = RestAPI(api_url=CHUCK_BASE_URL, driver=client)
api.register_endpoints(endpoints)
joke = api.call_endpoint("get_joke")
joke2 = api.get_joke()
categories = api.get_categoires()
search = api.get_search(query="something")
print(joke)
print(joke2)
print(search)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file py-rest-api-client-0.0.3.tar.gz
.
File metadata
- Download URL: py-rest-api-client-0.0.3.tar.gz
- Upload date:
- Size: 5.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.8.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 213846e1d609fe6add7440cb4690ef145585074d563e95dc9244ce0278e031bc |
|
MD5 | 09c99425faf2665cdd81a383073c79af |
|
BLAKE2b-256 | 8858f04fb6ca778377af699f3da9c2f46c3eb1f3a8ae0d04d8f3bf5d336c7868 |
File details
Details for the file py_rest_api_client-0.0.3-py3-none-any.whl
.
File metadata
- Download URL: py_rest_api_client-0.0.3-py3-none-any.whl
- Upload date:
- Size: 5.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.8.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f8e56902148b19efb62a3a5ac5b0871e274b00557dd92fd0593fd723e2a71899 |
|
MD5 | 66bb1ceeaee7f5d6210040598dc302c7 |
|
BLAKE2b-256 | ea9ab686c00f4cf5fbb7f20ecae04801854eb781be9602037755063f64c4d58c |