Async vs sync
Async client
harborapi
is predominantly focused on providing an async API for interacting with the Harbor API. The various code snippets on these pages all assume the instantiated client is HarborAsyncClient
, and it is running within an asynchronous function where await
can be used.
If you only intend to use the Async Client, skip this page.
Non-async client
harborapi
also provides HarborClient
as a non-async alternative. HarborClient
provides all the same methods as HarborAsyncClient
, except it schedules the asynchronous methods to run as coroutines in the event loop by intercepting attribute access on the class.
All* methods on HarborClient
have the same interface as the methods on HarborAsyncClient
, except await
is not required.
When using the non-async client HarborClient
, all methods should be invoked identically to methods on HarborAsyncClient
, except the await
keyword in front of the method call must be omitted.
Example
import asyncio
from harborapi import HarborClient
client = HarborClient(
url="https://your-harbor-instance.com/api/v2.0",
username="username",
secret="secret",
)
res = client.get_current_user()
It is not recommended to use this client, but is provided as an alternative if you absolutely don't want to deal with anything related to asyncio
yourself. Due to the metaprogramming involved in making this non-async client, autocompletion and type hints are not available for the various methods.
* Private methods (prefixed with _
) and HTTP methods such as get
, post
, etc. cannot be called without await
.