I den här delen av AEM Headless Developer Journey Lär dig hur du använder REST API för att komma åt och uppdatera innehållet i dina innehållsfragment.
I det föregående dokumentet om den AEM resan utan headless Få åtkomst till ditt innehåll via AEM-API:er har du lärt dig hur du får tillgång till ditt headless-innehåll i AEM via det AEM GraphQL API:t, och du bör nu:
Den här artikeln bygger på dessa grundläggande funktioner så att du förstår hur du uppdaterar det befintliga headless-innehållet i AEM via REST API.
I det föregående steget i Headless Journey lärde du dig att använda AEM GraphQL API för att hämta ditt innehåll med hjälp av frågor.
Varför behövs en annan API?
Med Assets HTTP API kan du Läs innehållet, men det gör det också möjligt för dig Skapa, Uppdatera och Ta bort content - åtgärder som inte är möjliga med GraphQL API.
Resursens REST API är tillgängligt för varje körklar installation av en nyligen använd Adobe Experience Manager-version.
Resursens HTTP-API omfattar:
Den aktuella implementeringen av Assets HTTP API baseras på REST arkitektoniskt format så att du kan komma åt innehåll (lagrat i AEM) via CRUD (Skapa, läsa, uppdatera, ta bort).
Med den här åtgärden kan du med API:t köra Adobe Experience Manager som ett headless CMS (Content Management System) genom att tillhandahålla Content Services till ett JavaScript-klientprogram. Eller något annat program som kan köra HTTP-begäranden och hantera JSON-svar. Exempelvis kräver Single Page-program (SPA), ramverksbaserade eller anpassade, innehåll som tillhandahålls via ett API, ofta i JSON-format.
Innehållsfragment används för rubrikfri leverans och ett innehållsfragment är en särskild typ av resurs. De används för att komma åt strukturerade data, t.ex. texter, siffror och datum.
Resursens REST API använder /api/assets
slutpunkten och kräver att sökvägen till resursen har åtkomst till den (utan radavståndet) /content/dam
).
/content/dam/path/to/asset
/api/assets/path/to/asset
Till exempel för att komma åt /content/dam/wknd/en/adventures/cycling-tuscany
, begäran /api/assets/wknd/en/adventures/cycling-tuscany.json
Åtkomst över:
/api/assets
inte behöver du använda .model
väljare./content/path/to/page
gör kräver att .model
väljare.HTTP-metoden avgör vilken åtgärd som ska utföras:
Parametrarna för begärandeinnehåll och/eller URL kan användas för att konfigurera vissa av dessa åtgärder. Du kan till exempel definiera att en mapp eller en resurs ska skapas av en POST begäran.
Det exakta formatet för begäranden som stöds definieras i API-referensdokumentationen.
Användningen kan variera beroende på om du använder en AEM författare eller publiceringsmiljö, tillsammans med ditt specifika användningsexempel.
Vi rekommenderar starkt att skapandet är bundet till en författarinstans (och att det för närvarande inte finns något sätt att replikera ett fragment för publicering med detta API).
Leverans är möjlig från båda, eftersom AEM endast skickar begärt innehåll i JSON-format.
Lagring och leverans från en AEM författarinstans bör räcka för program som ligger bakom brandväggen och mediabibliotek.
För live-webbleverans rekommenderas en publiceringsinstans AEM.
Dispatcher-konfigurationen på AEM instanser kan blockera åtkomst till /api
.
Mer information finns i API-referensen. Särskilt gäller följande: Adobe Experience Manager Assets API - innehållsfragment.
Användning sker via:
GET /{cfParentPath}/{cfName}.json
Till exempel:
http://<host>/api/assets/wknd/en/adventures/cycling-tuscany.json
Svaret är serialiserat JSON med innehållet strukturerat som i innehållsfragmentet. Referenser levereras som referens-URL:er.
Det finns två typer av läsåtgärder:
Användning sker via:
POST /{cfParentPath}/{cfName}
Brödtexten måste innehålla en JSON-representation av det innehållsfragment som ska skapas, inklusive allt ursprungligt innehåll som ska anges för elementen i innehållsfragmentet. Det är obligatoriskt att ange cq:model
och måste peka på en giltig innehållsfragmentmodell. Om du inte gör det kommer ett fel att uppstå. Du måste också lägga till en rubrik Content-Type
som är inställd på application/json
.
Användning sker via
PUT /{cfParentPath}/{cfName}
Brödtexten måste innehålla en JSON-representation av vad som ska uppdateras för det angivna innehållsfragmentet.
Detta kan helt enkelt vara titeln eller beskrivningen av ett innehållsfragment, ett enskilt element eller alla elementvärden och/eller metadata.
Användning sker via:
DELETE /{cfParentPath}/{cfName}
Mer information om hur du använder AEM Assets REST API finns i:
Nu när du är klar med den här delen av AEM Headless Developer Journey ska du:
Du bör fortsätta den AEM resan utan trassel genom att nästa gång du granskar dokumentet Så här Live med ditt headless-program där du faktiskt tar ditt AEM Headless-projekt till hands!