Przejdź do głównej zawartości

Dokumentacja REST API Connect

NextPDF Connect udostępnia swój rejestr narzędzi przez HTTP jako transport REST opisany kontraktem OpenAPI 3.1. Ta strona opisuje ten interfejs: bazowy adres URL, sposób uwierzytelniania, grupy operacji oraz model błędów. Opublikowana pełna specyfikacja przeznaczona do odczytu maszynowego pozwala wczytać ją do interaktywnego eksploratora, generatora klientów lub klienta zapytań bez ręcznego kopiowania czegokolwiek.

Niezależny od transportu katalog narzędzi (te same operacje dostępne przez Model Context Protocol i gRPC, a także REST) opisuje dokumentacja API Connect. Konfigurację potoku RoadRunner, wdrożenia oraz uwierzytelniania opisuje przewodnik po transporcie REST.

Transport REST nasłuchuje na hoście i porcie skonfigurowanych dla danego wdrożenia. Przy uruchomieniu lokalnym jest to http://localhost:8080; w środowisku produkcyjnym jest to adres wystawiony przed pulą procesów roboczych.

Uwierzytelnianie odbywa się za pomocą tokenu bearer. Klucz API należy wysyłać w nagłówku Authorization w każdym żądaniu do trasy objętej kontrolą poziomu dostępu:

Okno terminala
curl --request POST \
--url http://localhost:8080/api/v1/render \
--header "Authorization: Bearer $NEXTPDF_API_KEY" \
--header "Content-Type: application/json" \
--data '{"operations":[{"op":"add_text","text":"Hello from NextPDF Connect"}]}'

Sondy żywotności i gotowości działające tylko do odczytu nie wymagają tokenu.

Dostępność zależy od poziomu licencji. Rdzeń open source udostępnia operacje dotyczące dokumentów, renderowania, sesji i zadań. Podpisywanie, wypełnianie formularzy, redagowanie, porównywanie, sprawdzanie dostępności oraz optymalizacja wymagają edycji komercyjnej zainstalowanej obok serwera. Miarodajny zestaw dla danego wdrożenia zwraca punkt końcowy możliwości. Należy odpytać ten punkt końcowy, zamiast zakładać stałą listę.

MetodaŚcieżkaPrzeznaczenie
GET/healthzSonda żywotności. Bez uwierzytelniania.
GET/readyzSonda gotowości (zależności i pula procesów roboczych są gotowe). Bez uwierzytelniania.
GET/api/v1/capabilitiesNarzędzia i poziomy faktycznie udostępniane przez to wdrożenie. Należy odpytać ten punkt końcowy w pierwszej kolejności.
MetodaŚcieżkaPrzeznaczenie
POST/api/v1/renderRenderuje dokument z uporządkowanej listy operacji i zwraca plik PDF.
POST/api/v1/extract-textWyodrębnia zawartość tekstową z pliku PDF.
POST/api/v1/mergeScala kilka wejściowych plików PDF w jeden dokument.
POST/api/v1/splitDzieli plik PDF na wiele dokumentów.
MetodaŚcieżkaPrzeznaczenie
POST/api/v1/jobsPrzekazuje długotrwałą operację jako zadanie.
GET/api/v1/jobs/{id}Odpytuje status zadania.
GET/api/v1/jobs/{id}/resultPobiera wynik ukończonego zadania.

Sesje utrzymują otwarty dokument przez kilka wywołań, dzięki czemu można budować go przyrostowo i wyrenderować jednorazowo na końcu.

MetodaŚcieżkaPrzeznaczenie
POST/api/v1/sessionsOtwiera sesję.
GET / DELETE/api/v1/sessions/{sessionId}Sprawdza lub zamyka sesję.
POST/api/v1/sessions/{sessionId}/pagesDodaje stronę.
POST/api/v1/sessions/{sessionId}/textDodaje tekst.
POST/api/v1/sessions/{sessionId}/imagesDodaje obraz.
POST/api/v1/sessions/{sessionId}/tablesDodaje tabelę.
POST/api/v1/sessions/{sessionId}/htmlDodaje wyrenderowany kod HTML.
POST/api/v1/sessions/{sessionId}/fontUstawia aktywną czcionkę.
POST/api/v1/sessions/{sessionId}/renderRenderuje dokument sesji.

Te trasy są rejestrowane tylko wtedy, gdy zainstalowana jest odpowiednia edycja komercyjna. Niektóre z nich wymagają zatwierdzenia w procesie potwierdzania z udziałem człowieka; zobacz poziomy ryzyka.

MetodaŚcieżkaPrzeznaczenie
POST/api/v1/signNakłada podpis cyfrowy.
POST/api/v1/fill-formWypełnia formularz interaktywny.
POST/api/v1/redactRedaguje zawartość.
POST/api/v1/comparePorównuje dwa dokumenty PDF.
POST/api/v1/check-accessibilityPrzeprowadza strukturalną kontrolę dostępności.
POST/api/v1/optimizeOptymalizuje i zmniejsza dokument.

Transport REST używa kodów stanu HTTP o semantyce zdefiniowanej w RFC 9110: 2xx dla powodzenia, 4xx dla żądania, które wywołujący musi poprawić (400 nieprawidłowa treść, 401 brakujący lub nieprawidłowy token, 403 odmowa z powodu poziomu lub zatwierdzenia, 404 nieznana trasa lub zadanie, 409 konflikt idempotentności, 422 poprawnie sformułowane żądanie, którego silnik nie może przetworzyć), oraz 5xx dla błędu po stronie serwera. Odpowiedź 401 zawiera wyzwanie WWW-Authenticate.

Odpowiedzi błędów mają postać dokumentów application/problem+json zgodnych z RFC 9457 (Problem Details for HTTP APIs): stabilny type, krótki title, liczbowy status oraz czytelny dla człowieka detail. Dopasowuj według type, a nie według wartości detail. Definicje normatywne zawierają również RFC 9110 (HTTP Semantics) oraz RFC 9457.

Żądania zmieniające stan wysyłaj z nagłówkiem Idempotency-Key, aby ponowione żądanie zostało przetworzone tylko raz.

Pełny kontrakt jest opublikowany jako statyczny dokument OpenAPI 3.1:

https://nextpdf.dev/docs/openapi/nextpdf-connect.yaml

Traktuj go jako jedyne źródło prawdy dla interfejsu REST:

  1. Otwórz interaktywny eksplorator API — samodzielnie hostowaną dokumentację Scalar działającą w przeglądarce i wygenerowaną z tego kontraktu — aby zapoznać się z każdą operacją i wypróbować ją wraz ze schematami żądań i odpowiedzi.
  2. Zaimportuj kontrakt do klienta zapytań, takiego jak Postman czy Insomnia.
  3. Wygeneruj typowanego klienta dla swojego języka za pomocą generatora OpenAPI.

Dokument jest statycznym kontraktem przypiętym do wersji pakietu. Nie jest udostępniany przez aktywny punkt końcowy, dzięki czemu pozostaje stabilny między wdrożeniami.