Toolverse
Wszystkie skille

superpowers-python-automation

autor: anthonylee991

Niezawodne automacje Pythona dla API REST – retries, timeout'y, paginacja i testy w jednym miejscu

Instalacja

Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.

Instalacja

Szybkie info

Kategoria
Backend
Wyświetlenia
5

O skillu

Skill do budowania solidnych skryptów i serwisów Pythona, które komunikują się z zewnętrznymi API. Zawiera gotowe wzorce dla httpx/requests, obsługę błędów sieciowych, retry'i z respektowaniem Retry-After, timeouty, paginację i strukturyzowane logowanie. Idealne do ETL, narzędzi synchronizacyjnych, webhook'ów i CLI'ów integrujących systemy zewnętrzne. Wszystko z testami pytest i typowaniem danych.

Jak używać

  1. Zainstaluj skill w swoim projekcie Pythona i upewnij się, że masz dostęp do bibliotek httpx (lub requests) oraz pytest. Jeśli projekt jeszcze ich nie używa, dodaj je do requirements.txt.

  2. Utwórz strukturę katalogów zgodnie z architekturą: client.py dla wrappera API (auth, retry'e, paginacja), models.py dla typowanych modeli danych (dataclasses lub pydantic), sync.py dla logiki orkestracji (pobierz → transformuj → zaktualizuj), main.py jako punkt wejścia CLI, oraz katalog tests/ na testy jednostkowe.

  3. W client.py zaimplementuj centralizowaną funkcję do wysyłania żądań HTTP. Zawsze ustaw timeouty (connect i read osobno), nigdy nie loguj sekretów takich jak Authorization headers czy tokeny, a obsługuj retry'e dla błędów sieciowych, timeout'ów, 429 (Retry-After), oraz 500–599. Nie retry'uj błędów 400–499 chyba że operacja jest bezpieczna.

  4. Obsługi paginację poprzez helper, który wspiera co najmniej jeden z wzorców: next URL w odpowiedzi, cursor token lub parametry page/limit. Dodaj hard stop – maksymalną liczbę stron lub rekordów, aby uniknąć nieskończonych pętli.

  5. Napisz testy dla logiki transformacji i zachowania klienta API. Użyj pytest oraz respx do mockowania żądań httpx, aby upewnić się, że retry'e i timeouty działają poprawnie bez rzeczywistych połączeń sieciowych.

  6. Jeśli projekt już używa innych narzędzi (inny HTTP client, inny logger, inne konwencje), postępuj zgodnie z istniejącymi standardami zamiast domyślnych wzorców – spójność z kodem istniejącym ważniejsza niż dogmatyczne stosowanie się do skill'u.

Podobne skille