{{ description }}
First, create a client:
from {{ package_name }} import Client
client = Client(base_url="https://api.example.com")
If the endpoints you're going to hit require authentication, use AuthenticatedClient
instead:
from {{ package_name }} import AuthenticatedClient
client = AuthenticatedClient(base_url="https://api.example.com", token="SuperSecretToken")
Now call your endpoint and use your models:
from {{ package_name }}.models import MyDataModel
from {{ package_name }}.api.my_tag import get_my_data_model
my_data: MyDataModel = get_my_data_model(client=client)
Or do the same thing with an async version:
from {{ package_name }}.models import MyDataModel
from {{ package_name }}.async_api.my_tag import get_my_data_model
my_data: MyDataModel = await get_my_data_model(client=client)
Things to know:
- Every path/method combo becomes a Python function with type annotations.
- All path/query params, and bodies become method arguments.
- If your endpoint had any tags on it, the first tag will be used as a module name for the function (my_tag above)
- Any endpoint which did not have a tag will be in
{{ package_name }}.api.default
- If the API returns a response code that was not declared in the OpenAPI document, a
{{ package_name }}.api.errors.ApiResponseError
wil be raised with theresponse
attribute set to thehttpx.Response
that was received.
This project uses Poetry to manage dependencies and packaging. Here are the basics:
- Update the metadata in pyproject.toml (e.g. authors, version)
- If you're using a private repository, configure it with Poetry
poetry config repositories.<your-repository-name> <url-to-your-repository>
poetry config http-basic.<your-repository-name> <username> <password>
- Publish the client with
poetry publish --build -r <your-repository-name>
or, if for public PyPI, justpoetry publish --build
If you want to install this client into another project without publishing it (e.g. for development) then:
- If that project is using Poetry, you can simply do
poetry add <path-to-this-client>
from that project - If that project is not using Poetry:
- Build a wheel with
poetry build -f wheel
- Install that wheel from the other project
pip install <path-to-wheel>
- Build a wheel with