Skip to main content

A client for the fastapi environment

Project description

FastAPIClient

An easy to use, integrated client for FastApi,

  1. Uses the same decorators as FastApi
  2. Dose not require you to redefine the api.
  3. Allows defining the client "host" via the with command.
  4. Works with async as well.
  5. Dose not affect the operation of the api in any way.
  6. Can be applied either globally or for a specific api (if predefined - see below).

BETA

This repo is in beta mode, some bugs may still exist and test coverage is not complete. PR's welcome.

TL;DR

To use the client, you must enable it before defining/importing the api methods

If we are using the api api_module defined below,

from fastapi import FastAPI

api = FastAPI()

@api.get("/echo")
def echo(a: int, b: int):
    rslt = a + b
    print(rslt)
    return rslt

We can use the client

from fastapi_client import FastAPIClient, enable_fastapi_client

# This is REQUIRED in order to allow the fast api client to wrap around any function calls.
# NOTE: The client DOSE NOT AFFECT the operation of the API, and dose not slow it down
# in any way.
enable_fastapi_client()

from api_module import {
    echo
}

# Call the function locally
echo(1,2)

# Call the function on the server running in localhost
with FastAPIClient("localhost:8080"):
    print(echo(1, 2))

Non global configuration

To define an api client that works only on a specific api/router, you must enable the api client on the api object before defining the api functions,

from fastapi import FastAPI

api = FastAPI()

# This is REQUIRED in order to allow the fast api client to wrap around any function calls.
# NOTE: The client DOSE NOT AFFECT the operation of the API, and dose not slow it down
# in any way.
FastAPIClient.enable(api)

@api.get("/echo")
def echo(a: int, b: int):
    rslt = a + b
    print(rslt)
    return rslt

Install

pip install fastapi_client

Contribution

Feel free to ping me for issues or submit a PR to contribute.

License

Copyright © Zav Shotan and other contributors. It is free software, released under the MIT licence, and may be redistributed under the terms specified in LICENSE.

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

fastapi_client-0.1.0.tar.gz (8.6 kB view details)

Uploaded Source

Built Distribution

fastapi_client-0.1.0-py3-none-any.whl (9.1 kB view details)

Uploaded Python 3

File details

Details for the file fastapi_client-0.1.0.tar.gz.

File metadata

  • Download URL: fastapi_client-0.1.0.tar.gz
  • Upload date:
  • Size: 8.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.14

File hashes

Hashes for fastapi_client-0.1.0.tar.gz
Algorithm Hash digest
SHA256 b6783dc3cabd5361c42762fd38a90d5163293e302f9ef5741257faa19520d3d0
MD5 30b8eb4ca06a31a83c62629e3ebc877c
BLAKE2b-256 7c0200db46a13f0f9b06e2788e711a01ee48d01196f73ddf272fb3e9907f1f54

See more details on using hashes here.

File details

Details for the file fastapi_client-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for fastapi_client-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8839783d84f16a784ba4fb56b58d559a6c55df2f21b6040971ef429a2727f239
MD5 d90b0a3dcf26801f8c0f863a358916bd
BLAKE2b-256 9f7985c13fcc8e5bfd43a3e2d2a56fd0e4ce22415a5085eb058ba65b7c0537f3

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