Məzmuna keçin

Daxili kod strukturunun API Reference-i

API

integrify.api.APIClient(name, base_url=None, default_handler=None, sync=True, dry=False, timeout=DEFAULT_TIMEOUT)

API inteqrasiyaları üçün klient

PARAMETER DESCRIPTION
name

Klient adı. Logging üçün istifadə olunur.

TYPE: str

base_url

API-lərin əsas (kök) url-i. Əgər bir neçə base_url varsa, bu field-i boş saxlayıb, hər endpoint-ə uyğun base_url-i add_url funksiyasında verin. (bax: AzeriCard)

TYPE: str | None DEFAULT: None

default_handler

default API handler. Bu handler əgər hər hansı bir API-yə handler register olunmadıqda istifadə olunur.

TYPE: Optional[APIPayloadHandler] DEFAULT: None

sync

Sync (True) və ya Async (False) klient seçimi. Default olaraq sync seçilir.

TYPE: bool DEFAULT: True

dry

Sorğu göndərmək əvəzinə göndəriləcək datanı qaytarmaq üçün istifadə olunur.

TYPE: bool DEFAULT: False

timeout

httpx sorğu timeout-u (saniyə ilə).

TYPE: float | None DEFAULT: DEFAULT_TIMEOUT

add_url(route_name, url, verb, base_url=None)

Yeni endpoint əlavə etmə funksiyası

PARAMETER DESCRIPTION
route_name

Funksionallığın adı (məs., pay, refund və s.)

TYPE: str

url

Endpoint url-i

TYPE: str

verb

Endpoint metodu (POST, GET, və s.)

TYPE: str

base_url

Endpoint-lərin baza (kök) url-i. Endpoint-lər fərqli hostlar üzərində qurulduqda lazım olur.

TYPE: str | None DEFAULT: None

set_default_handler(handler_class)

Sorğulara default handler setter-i

PARAMETER DESCRIPTION
handler_class

Default handler class-ı

TYPE: type[APIPayloadHandler]

add_handler(route_name, handler_class)

Endpoint-ə handler əlavə etmək method-u

PARAMETER DESCRIPTION
route_name

Funksionallığın adı (məs., pay, refund və s.)

TYPE: str

handler_class

Həmin sorğunun (və response-unun) payload handler class-ı

TYPE: type[APIPayloadHandler]

integrify.api.APIPayloadHandler(req_model=UNSET, resp_model=UNSET, dry=UNSET)

Sorğu və cavab data payload-ları üçün handler class-ı

Handler-lər stateless-dir: sorğu modeli heç vaxt self-də saxlanılmır, hər çağırışda lokal olaraq yaradılıb ötürülür. Bu, eyni handler instansiyasının (məs., EPointAsyncRequest kimi shared klientlərdə) paralel sorğularda təhlükəsiz istifadəsinə imkan verir.

req_model, resp_modeldry class atribut (ClassVar) kimi təyin oluna bilər::

class MyHandler(APIPayloadHandler):
    req_model = MyRequestSchema
    resp_model = MyResponseSchema

və ya geriyə uyğunluq üçün __init__-ə ötürülə bilər.

PARAMETER DESCRIPTION
req_model

Sorğunun payload model-i. Verilməsə, class atributu istifadə olunur.

TYPE: Any DEFAULT: UNSET

resp_model

Sorğunun cavabının payload model-i. Verilməsə, class atributu istifadə olunur.

TYPE: Any DEFAULT: UNSET

dry

Simulasiya bool-u. Verilməsə, class atributu istifadə olunur.

TYPE: Any DEFAULT: UNSET

headers cached property

Sorğunun header-ləri

pre_handle_payload(*args, **kwds)

Sorğunun payload-ının pre-processing-i. Əgər istənilən payload-a əlavə datanı lazımdırsa (bütün sorğularda eyni olan data), bu funksiyadan istifadə edə bilərsiniz.

Misal üçün: Bax EPointClientClass

handle_payload(req_model, *args, **kwds)

Verilən sorğu modelini payload-a (dict) çevirən funksiya. self.req_model qeyd edilməyibsə, bu funksiya override olunmalıdır (!).

PARAMETER DESCRIPTION
req_model

build_request_model-dan qayıdan model instansiyası

TYPE: PayloadBaseModel | None

post_handle_payload(data)

Sorğunun payload-ının post-processing-i. Əgər sorğu göndərməmişdən qabaq son datanın üzərinə əlavələr lazımdırsa, bu funksiyadan istifadə edə bilərsiniz.

Misal üçün: Bax EPointClientClass

PARAMETER DESCRIPTION
data

pre_handle_payloadhandle_payload funksiyalarından yaradılmış data.

TYPE: Any

handle_request(req_model, *args, **kwds)

Sorğu üçün payload-u hazırlayan funksiya. Üç mərhələ icra edir, və bu mərhələlər override oluna bilər. (Misal üçün: Bax EPointClientClass

  1. Pre-processing
  2. Payload hazırlama
  3. Post-processing
PARAMETER DESCRIPTION
req_model

build_request_model-dan qayıdan model instansiyası

TYPE: PayloadBaseModel | None

handle_response(resp)

Sorğudan gələn cavab payload-ı handle edən funksiya. self.resp_model schema-sı verilibsə, onunla parse və validate olunur, əks halda, json/dict formatında qaytarılır.

integrify.api.APIExecutor(name, sync=True, dry=False, timeout=DEFAULT_TIMEOUT)

API sorgularını icra edən class

PARAMETER DESCRIPTION
name

API klientin adı. Logging üçün istifadə olunur.

TYPE: str

sync

Sync (True) və ya Async (False) klient seçimi. Default olaraq sync seçilir.

TYPE: bool DEFAULT: True

dry

Sorğu göndərmək əvəzinə göndəriləcək datanı qaytarmaq üçün istifadə olunur. Debug üçün nəzərdə tutulub.

TYPE: bool DEFAULT: False

timeout

httpx sorğu timeout-u (saniyə ilə).

TYPE: float | None DEFAULT: DEFAULT_TIMEOUT

request_function property

Sync/async request atan funksiyanı seçən attribute

sync_req(url, verb, handler, *args, headers=None, **kwds)

Sync sorğu atan funksiya

PARAMETER DESCRIPTION
url

Sorğunun full url-i

TYPE: str

verb

Sorğunun metodun (POST, GET, və s.)

TYPE: str

handler

Sorğu və cavabın payload handler-i

TYPE: APIPayloadHandler

async_req(url, verb, handler, *args, headers=None, **kwds) async

Async sorğu atan funksiya

PARAMETER DESCRIPTION
url

Sorğunun full url-i

TYPE: str

verb

Sorğunun metodun (POST, GET, və s.)

TYPE: str

handler

Sorğu və cavabın payload handler-i

TYPE: APIPayloadHandler

Schema

integrify.schemas.APIResponse pydantic-model

Bases: BaseModel, Generic[_ResponseT]

Cavab sorğu base payload tipi. Generic tip-i qeyd etmıəklə sorğu cavabını validate edə bilərsiniz.

Fields:

Validators:

ok pydantic-field

Cavab sorğusunun statusu 400dən kiçikdirsə

status_code pydantic-field

Cavab sorğusunun status kodu

headers pydantic-field

Cavab sorğusunun header-i

body pydantic-field

Cavab sorğusunun body-si

convert_to_dict(v) pydantic-validator

Binary content-i dict-ə çevirərək, validation-a hazır vəziyyətə gətirir.

Cavab JSON deyilsə (məs., gateway xətası zamanı HTML səhifə və ya boş body), json.loads xətası atmaq əvəzinə boş dict qaytarılır ki, sorğu axını crash olmasın. Bu halda, status kodu və ok field-ləri vasitəsilə xətanı öyrənmək olar.

integrify.schemas.DryResponse

Bases: TypedDict

Dry-run sorğularının return tipi

url instance-attribute

Sorğu göndəriləcək url

verb instance-attribute

Sorğu metodu (GET, POST və s.)

headers instance-attribute

Sorğu header-ləri

data instance-attribute

Sorğu data-sı (body-si)

request_args instance-attribute

httpx.request funksiyasına ötürülən parametrlər

integrify.schemas.PayloadBaseModel pydantic-model

Bases: BaseModel

from_args(*args, **kwds) classmethod

Verilən *args**kwds (və ya **kwargs) parametrlərini birləşdirərək Pydantic validasiyası edən funksiya. Positional arqumentlər üçün (*args) Pydantic modelindəki field-lərin ardıcıllığı və çağırılan funksiyada parametrlərinin ardıcıllığı EYNİ OLMALIDIR, əks halda, bu method yararsızdır.

Extras

integrify.utils.UNSET = UnsetType() module-attribute

integrify.utils.Unset = T | Literal[UNSET] module-attribute

Optional argument tipi

integrify.utils.UnsetOrNone = T | Literal[UNSET] | None module-attribute

None dəyəri ala bilən optional argument tipi

integrify.utils.UnsetField = Annotated[Unset[T], Field(default=UNSET, exclude_if=(lambda x: x is UNSET))] module-attribute

Pydantic üçün set olunmamış argument dəyəri

integrify.utils.UnsetOrNoneField = Annotated[UnsetOrNone[T], Field(default=UNSET, exclude_if=(lambda x: x is UNSET))] module-attribute

Pydantic üçün set olunmamış və None dəyəri ala bilən argument dəyəri