Baza wiedzy
Typowane SDK
Najpierw klient TypeScript, potem reszta.
Szczegóły
- Opublikowany na npm i w użyciu. @openemail/sdk to kompletny, pozbawiony zależności klient TypeScript, publikowany zarówno jako ESM, jak i CommonJS, z jedną metodą na każdą udokumentowaną operację serwowaną przez API, plus dwa nieuwierzytelnione endpointy meta, których potrzebuje generator klientów, z kluczem czytanym z OPENEMAIL_API_KEY, 30-sekundowym limitem czasu na próbę, dwoma ponowieniami, nadpisaniem apiKey na pojedyncze wywołanie dla procesu obsługującego kilka obszarów roboczych oraz emails.iterate() do stronicowania listy bez pisania pętli po kursorze. Działa na Node 18 i nowszym, Workers, Deno, Bun i w przeglądarce. Klucz z nieprawidłowym prefiksem rzuca wyjątek już przy konstrukcji, zamiast zwracać 401 przy pierwszym wywołaniu; sprawdzany jest wyłącznie prefiks, więc poprawnie zbudowany, ale unieważniony klucz i tak polegnie na łączu.
- Jest spięty z serwerem kontrolą zgodności, która przy każdej kompilacji czyta dokument OpenAPI i kończy się błędem, jeśli oba się rozjadą: metoda wskazująca na operację, której nie ma w specyfikacji, udokumentowana operacja bez metody, lista zakresów niezgodna z tą, której wymaga operacja, przestrzeń nazw z metodami i bez wpisu w dokumentacji referencyjnej albo metoda, która nie wysyła żądania wskazanego przez jej własny manifest. Kontrola wypisuje, co udowodniła, i dziś brzmi to: 116 metod SDK pokrywających wszystkie 104 udokumentowane operacje. Obok stoją dwa skrypty generujące, które odmawiają wyemitowania operacji niesklasyfikowanej albo napisanej z użyciem myślnika. Dlatego ten klient nie jest nakładką napisaną po fakcie. Nie może zostać w tyle za API o jedno wydanie.
- Brakuje instalacji wydawniczej. Pakiet jest na npm, więc
bun add @openemail/sdkdziała, ale nie ma procesu wydawania: publikacja to ręczne uruchomienie preflightu, kompilacji ibun publish, co oznacza, że wersja trafia na npm wtedy, gdy ktoś sobie o tym przypomni, a nie wtedy, gdy zmiana wyląduje. API, na które domyślnie wskazuje, jest włączone i odpowiada. - TypeScript jest jedynym językiem, a dokument OpenAPI jest świadomie odpowiedzią na resztę, zamiast pięciu ręcznie pisanych klientów zostających w tyle w różnym tempie. W repozytorium nie ma klienta w Pythonie, Go ani Ruby i nie będzie go, zanim dokument nie stanie się tym, z czego są generowane.