Skip to main content

Create API wrappers/clients in minutes, enjoying both blocking and async interfaces from one codebase!

Project description

Introduction

If you've ever tried to make an API wrapper you probably know that the code written can only be used as sync or async, well, not anymore.

Features

  • Lightweight: Extremely lightweight and minimal
  • Easy to use: Implement features in no time with the
  • Async and blocking: Provides both async and blocking calls
  • Test without a server: Since the library internally uses httpx, it can be used to test itself using an ASGI or WSGI application.
  • DRY: Don't repeat yourself, helps avoid code duplication and write reusable code
  • Routing: An APIRouter class with simliar API to APIClient
  • Modular: Create reusable routers that can be added to any client, independant of each other

Example Usage

from apiclient import APIClient, endpoint, Post

class CodeExecClient(APIClient):
  base_url = "https://pathtomysite.com/api/1.0"   # Note the missing / suffix
  @endpoint
  def run(self, language:str, code:str):
    # Do any processing with the data here!
    # Also note the / prefix in the url
    return Post("/execute", params={'lang':language, 'code':code})


# Using the API client
from httpx import Client
client = CodeExecClient(session=Client())
response = client.run("py", "print('hello world!')")

Documentation is under works

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

instant-api-client-0.1.2.tar.gz (3.8 kB view details)

Uploaded Source

Built Distribution

instant_api_client-0.1.2-py3-none-any.whl (5.3 kB view details)

Uploaded Python 3

File details

Details for the file instant-api-client-0.1.2.tar.gz.

File metadata

  • Download URL: instant-api-client-0.1.2.tar.gz
  • Upload date:
  • Size: 3.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.7.9

File hashes

Hashes for instant-api-client-0.1.2.tar.gz
Algorithm Hash digest
SHA256 1a9efa7262f4f011060d036ad0c2df1c482f7181222858dabb8236048bce389a
MD5 6cd17758bbcb041f14eaac24447d9b5b
BLAKE2b-256 d95d96ab75eaac6885a70e242fc6c84d0981be7d309082519dc626017ee9113b

See more details on using hashes here.

File details

Details for the file instant_api_client-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: instant_api_client-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 5.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.7.9

File hashes

Hashes for instant_api_client-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 bb4a045cad36ab25c403434ce84a1eabdd044bba2dd8f42353169edc2080eedc
MD5 c5f6e1a76ed49e4565d1deb4c6c4d530
BLAKE2b-256 19490d3f4e3b6923653254e529f48248d5d458c3a09e9ed3e12bbe2b9eac393b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page