API HTTP

Przejrzyste kontrakty.
Rozdzieleni odbiorcy.

Integruj przez wersjonowane moduły HTTP i odkrywaj faktyczny kontrakt na własnym wdrożeniu. API zarządcze i publiczne są rozdzielone z założenia.

Dwa korzenie, dwóch odbiorców.
Warstwa Kształt trasy Przeznaczenie
Zarządcza /api/<module>/v<major>/… Operacje uwierzytelnione; w wdrożeniu witryny ruch zarządczy.
Publiczna /public/api/<module>/v<major>/… Reprezentacje dostępne anonimowo, celowo publiczne. Publiczne trasy witryny wymagają skonfigurowanego powiązania witryny.
Dokument API /api/openapi.json Kontrakt zarządczy na Twojej instancji.
Dokument publiczny /public/api/openapi.json Osobny kontrakt publiczny na Twojej instancji.
Zacznij od pytania, kim jesteś. bash
curl --user YOUR_USER \
  http://127.0.0.1:6727/api/identity/v1/me

Udokumentowane żądanie tożsamości. Ta witryna nie przechowuje żadnych poświadczeń.

Pierwsze udokumentowane moduły.
Moduł Reprezentatywny odczyt Zakres
identity/v1 GET /api/identity/v1/me Efektywna tożsamość wywołującego. Administracja użytkownikami i grupami jest odłożona.
content/v1 GET /api/content/v1/page?path=/content/example/en/about Zarządcza projekcja treści. Dołączana przez wdrożenie z włączoną obsługą witryn; przykładowa ścieżka musi istnieć.
site/v1 GET /public/api/site/v1/page?path=/ Publiczna projekcja względem witryny, przez skonfigurowane powiązanie dostarczania.

Ścieżki repozytorium są parametrami zapytania.

Zarządcze API treści używa stałej trasy i parametru zapytania path, zamiast osadzać dowolną ścieżkę repozytorium w segmentach trasy URL. Publiczne ścieżki witryny są względne wobec witryny i rozwiązywane wewnątrz skonfigurowanego powiązania.

Zarządczy moduł treści dokumentuje też tworzenie na podstawie szablonu, pola merge-patch z listy dozwolonych, usuwanie i przenoszenie. Nie stosuj do tych obecnych operacji proponowanej semantyki cyklu życia strony: prywatne wersje robocze, odwracalne usuwanie stron i /api/pages/v1 należą do niezaimplementowanej propozycji cyklu życia.

Uwierzytelnianie i zapisy.

Operacje korzystają z resolvera wywołującego. Zapis klienta maszynowego bez ciasteczek, z uwierzytelnianiem Basic, musi nieść niepusty nagłówek X-Requested-With; udokumentowaną konwencją jest wartość ContentLIBRE. Zapis z ciasteczkiem sesji korzysta zamiast tego z kontraktu tokenu CSRF. /public/api nie jest zwolnione z CSRF.

Udokumentowane API nie honoruje If-Match przy zapisach warunkowych. Odrzuca ten nagłówek odpowiedzią precondition-unsupported, zamiast udawać ochronę przed utraconymi aktualizacjami. Używaj kontraktu bieżącego wdrożenia, a nie przyszłego projektu cyklu życia.

Znacznik zapisu klienta maszynowego. http
X-Requested-With: ContentLIBRE

Wyłącznie ilustracja nagłówka — to nie jest kompletne żądanie modyfikujące. Uwierzytelnianie, autoryzacja i wymagania wejściowe właściwe dla trasy nadal obowiązują.

Dokumentacja i granice błędów.

Tam, gdzie dołączono funkcję docs, Swagger UI jest hostowane lokalnie pod /api/docs/ i /public/api/docs/. To trasy na instancji ContentLIBRE, a nie na tej witrynie marketingowej. Ta witryna nie osadza konsoli ani nie łączy się z działającą instancją.

Błędy servletów API, które niosą treść, używają application/problem+json. Odmowa wygenerowana wcześniej przez uwierzytelnianie Sling lub preprocesor jądra może mieć inną treść. Odpowiedzi zarządcze są no-store; publiczne buforowanie to jawna decyzja zasobu, podlegająca strażnikowi tożsamości.

Buduj integrację wobec swojej instancji.

Potwierdź moduły w kompozycji, przeczytaj jej dokument OpenAPI i testuj z tożsamościami, których będzie używać Twoja aplikacja.