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:
|
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
TYPE:
|
default_handler
|
default API handler. Bu handler əgər hər hansı bir API-yə handler register olunmadıqda istifadə olunur.
TYPE:
|
sync
|
Sync (True) və ya Async (False) klient seçimi. Default olaraq sync seçilir.
TYPE:
|
dry
|
Sorğu göndərmək əvəzinə göndəriləcək datanı qaytarmaq üçün istifadə olunur.
TYPE:
|
timeout
|
httpx sorğu timeout-u (saniyə ilə).
TYPE:
|
add_url(route_name, url, verb, base_url=None)
¶
Yeni endpoint əlavə etmə funksiyası
| PARAMETER | DESCRIPTION |
|---|---|
route_name
|
Funksionallığın adı (məs.,
TYPE:
|
url
|
Endpoint url-i
TYPE:
|
verb
|
Endpoint metodu (
TYPE:
|
base_url
|
Endpoint-lərin baza (kök) url-i. Endpoint-lər fərqli hostlar üzərində qurulduqda lazım olur.
TYPE:
|
set_default_handler(handler_class)
¶
Sorğulara default handler setter-i
| PARAMETER | DESCRIPTION |
|---|---|
handler_class
|
Default handler class-ı
TYPE:
|
add_handler(route_name, handler_class)
¶
Endpoint-ə handler əlavə etmək method-u
| PARAMETER | DESCRIPTION |
|---|---|
route_name
|
Funksionallığın adı (məs.,
TYPE:
|
handler_class
|
Həmin sorğunun (və response-unun) payload handler class-ı
TYPE:
|
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_model və dry 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:
|
resp_model
|
Sorğunun cavabının payload model-i. Verilməsə, class atributu istifadə olunur.
TYPE:
|
dry
|
Simulasiya bool-u. Verilməsə, class atributu istifadə olunur.
TYPE:
|
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
|
TYPE:
|
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
|
TYPE:
|
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
- Pre-processing
- Payload hazırlama
- Post-processing
| PARAMETER | DESCRIPTION |
|---|---|
req_model
|
TYPE:
|
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:
|
sync
|
Sync (True) və ya Async (False) klient seçimi. Default olaraq sync seçilir.
TYPE:
|
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:
|
timeout
|
httpx sorğu timeout-u (saniyə ilə).
TYPE:
|
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:
|
verb
|
Sorğunun metodun (
TYPE:
|
handler
|
Sorğu və cavabın payload handler-i
TYPE:
|
async_req(url, verb, handler, *args, headers=None, **kwds)
async
¶
Async sorğu atan funksiya
| PARAMETER | DESCRIPTION |
|---|---|
url
|
Sorğunun full url-i
TYPE:
|
verb
|
Sorğunun metodun (
TYPE:
|
handler
|
Sorğu və cavabın payload handler-i
TYPE:
|
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:
-
ok(bool) -
status_code(int) -
headers(dict) -
body(_ResponseT)
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
integrify.schemas.PayloadBaseModel
pydantic-model
¶
Bases: BaseModel
from_args(*args, **kwds)
classmethod
¶
Verilən *args və **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