GitHub

Tworzenie i zamykanie klientów

Argumenty konstruktorów, własność modułów, zamykanie zasobów i błędy cyklu życia w klientach ksef2.

Na tej stronie

Ta strona opisuje kontrakt referencyjny klientów bazowych i uwierzytelnionych. Skorzystaj z poradnika praktycznego, gdy potrzebujesz pełnej sekwencji konfiguracji.

Konstruktory klienta bazowego

Client(
    environment=Environment.PRODUCTION,
    *,
    transport_config=None,
    http_client=None,
)

AsyncClient(
    environment=Environment.PRODUCTION,
    *,
    transport_config=None,
    http_client=None,
)
python
ArgumentTyp syncTyp asyncDomyślnieZnaczenie
environmentEnvironmentEnvironmentEnvironment.PRODUCTIONŚrodowisko KSeF i bazowy URL klienta.
transport_config`TransportConfigNone``TransportConfigNone`
http_client`httpx.ClientNone``httpx.AsyncClientNone`

Gdy http_client nie jest podany, SDK tworzy klienta httpx z transport_config i zamyka go razem z klientem bazowym.

Elementy klienta bazowego

ElementDostępny naZwracaUwagi
authenticationClient, AsyncClientAuthClient / AsyncAuthClientPunkt wejścia do tokenu, XAdES, certyfikatu TEST i profili.
encryptionClient, AsyncClientEncryptionClient / AsyncEncryptionClientPubliczny odczyt certyfikatów szyfrowania KSeF.
peppolClient, AsyncClientPeppolClient / AsyncPeppolClientPubliczny lookup dostawców PEPPOL.
testdataClient, AsyncClientTestDataClient / AsyncTestDataClientGałąź fixture'ów tylko dla TEST. Rzuca błąd poza Environment.TEST.
rawClient, AsyncClientRawClient / AsyncRawClientNiskopoziomowe, nieuwierzytelnione grupy endpointów.
authenticated(auth_tokens)Client, AsyncClientAuthenticatedClient / AsyncAuthenticatedClientDeprecated compatibility wrapper. Użyj authentication.resume(AuthenticationResumeState.from_tokens(auth_tokens)).
close()ClientNoneIdempotentnie zamyka klienta HTTP sync należącego do SDK i unieważnia moduły w cache.
aclose()AsyncClientNoneIdempotentnie zamyka zasoby async i unieważnia moduły w cache.

Właściwości modułów są cache'owane, dopóki klient bazowy jest otwarty. Po zamknięciu klienta dostęp do modułów i operacje chronione middleware cyklu życia rzucają KSeFClientClosedError.

Context managery

KlientProtokół context manageraMetoda cleanup
Clientwith Client(...) as client:client.close() przy wyjściu.
AsyncClientasync with AsyncClient(...) as client:await client.aclose() przy wyjściu.

Context manager zamyka tylko klienta bazowego. Sesje online i batch są osobnymi granicami cyklu życia i powinny być zamykane przez własne context managery albo metody serwisów.

Elementy klienta uwierzytelnionego

Uwierzytelnienie zwraca klienta uwierzytelnionego powiązanego z jednym kontekstem KSeF i jedną parą tokenów.

ElementZwracaUwagi
auth_tokensAuthTokensModele tokenów access i refresh używane przez tę gałąź.
access_tokenstrString bearer access tokenu. Traktuj jako sekret.
refresh_tokenstrString refresh tokenu. Traktuj jako sekret.
resume_state()AuthenticationResumeStateSerializowalny stan uwierzytelnienia zawierający access i refresh token.
online_session(form_code=... | state=...)Klient sesji onlineOtwiera jedną sesję online faktur albo wznawia ją z zapisanego stanu (obiekt lub JSON). Async zwraca awaitable wrapper context managera.
resume_online_session(state)Klient sesji onlineWycofane; użyj online_session(state=...).
batch_session(prepared_batch= | batch_file= | state=)Klient sesji batchOtwiera sesję batch z przygotowanego batcha albo deklaracji pliku batch, albo wznawia ją z zapisanego stanu.
open_batch_session(...)Klient sesji batchOtwiera sesję batch, gdy caller posiada metadane szyfrowania.
resume_batch_session(state)Klient sesji batchWycofane; użyj batch_session(state=...).
invoicesInvoicesServiceMetadane, pobrania bezpośrednie, eksporty, pobieranie paczek i wait helpery.
batchBatchServiceWysokopoziomowy workflow przygotowania paczki, uploadu, zamknięcia, statusu i UPO.
limitsLimitsClientEndpointy limitów kontekstu, podmiotu i API.
tokensTokensClientGenerowanie, status, lista i unieważnianie tokenów.
certificatesCertificatesClientEnrollment, pobranie, query, limity i unieważnianie certyfikatów.
sessionsSessionManagementClientLista i zamykanie sesji uwierzytelnienia.
invoice_sessionsInvoiceSessionsClientHistoria sesji online i batch faktur oraz pobieranie UPO po zapisanych referencjach.
permissionsPermissionsClientNadawanie, query, cofanie i status operacji uprawnień.
rawRawAuthenticatedClientNiskopoziomowe, uwierzytelnione grupy endpointów.

AuthenticationResumeState jest właścicielem bearer access i refresh tokenów. OnlineSessionResumeState i BatchSessionResumeState nie zawierają danych uwierzytelnienia; wznawiaj je przez klienta uwierzytelnionego.

Klienci uwierzytelnieni współdzielą transport i cache certyfikatów klienta głównego. Nie posiadają osobnego klienta HTTP.

Własność klienta HTTP

SetupŹródło konfiguracji HTTPKto zamyka zasoby HTTP
Client(Environment.TEST)SDK buduje httpx.Client z TransportConfig.Client.close() albo wyjście z context managera.
AsyncClient(Environment.TEST)SDK buduje httpx.AsyncClient z TransportConfig.await AsyncClient.aclose() albo wyjście z async context managera.
Client(..., http_client=http)Podany httpx.Client.Aplikacja zamyka http.
AsyncClient(..., http_client=http)Podany httpx.AsyncClient.Aplikacja zamyka http.

Gdy http_client jest podany, ustawienia HTTP takie jak timeout, pool, TLS, proxy, trust_env, HTTP/2, custom transporty i event hooki pochodzą z tego obiektu. Middleware retry SDK nadal używa transport_config.retry.

Błędy lifecycle

BłądKiedy jest rzucany
KSeFClientClosedErrorKlient główny albo gałąź chroniona lifecycle jest użyta po zamknięciu.
KSeFUnsupportedEnvironmentErrorGałąź tylko dla TEST, obecnie testdata, jest użyta poza Environment.TEST.

Powiązana referencja