HTTP-API voor assets assets-http-api
Met de HTTP-API voor middelen kunt u CRUD-bewerkingen (read-update-delete) maken voor digitale elementen, waaronder metagegevens, vertoningen en opmerkingen, en voor gestructureerde inhoud die Experience Manager Inhoudsfragmenten. Het wordt blootgesteld bij /api/assets
en is geïmplementeerd als REST API.
Toegang krijgen tot de API:
- Open het API-servicedocument op
https://[hostname]:[port]/api.json
. - Volg de koppeling voor de middelenservice naar
https://[hostname]:[server]/api/assets.json
.
De API-reactie is een JSON-bestand voor sommige MIME-typen en een antwoordcode voor alle MIME-typen. Het JSON-antwoord is optioneel en is mogelijk niet beschikbaar, bijvoorbeeld voor PDF-bestanden. Vertrouw op de antwoordcode voor verdere analyse of acties.
Na de Off Time, een actief en de uitleveringen ervan niet beschikbaar zijn via de Assets webinterface en via de HTTP-API. De API geeft een foutbericht van 404 als de On Time in de toekomst is of Off Time is in het verleden.
jcr
naamruimte. De gebruikersinterface van de Experience Manager werkt echter de metagegevenseigenschappen in de dc
naamruimte.Gegevensmodel data-model
De HTTP-API voor middelen stelt twee belangrijke elementen, mappen en elementen beschikbaar (voor standaardelementen).
Mappen folders
Mappen zijn vergelijkbaar met mappen in traditionele bestandssystemen. Het zijn containers voor andere mappen of berichten. Mappen hebben de volgende componenten:
Entiteiten: De entiteiten van een map zijn onderliggende elementen, mappen en elementen.
Eigenschappen:
name
is de naam van de map. Dit is het zelfde als het laatste segment in de weg URL zonder de uitbreiding.title
is een optionele titel van de map die in plaats van de naam kan worden weergegeven.
jcr
voorvoegsel van jcr:title
, jcr:description
, en jcr:language
worden vervangen door dc
voorvoegsel. Vandaar in de geretourneerde JSON, dc:title
en dc:description
bevatten de waarden van jcr:title
en jcr:description
, respectievelijk.Koppelingen Mappen maken drie koppelingen zichtbaar:
self
: Koppeling naar zichzelf.parent
: Koppeling naar de bovenliggende map.thumbnail
: (Optioneel) koppeling naar een miniatuurafbeelding van een map.
Assets assets
In Experience Manager bevat een element de volgende elementen:
- De eigenschappen en metagegevens van het element.
- Meerdere uitvoeringen, zoals de oorspronkelijke uitvoering (het oorspronkelijk geüploade element), een miniatuur en verschillende andere uitvoeringen. Extra uitvoeringen kunnen afbeeldingen van verschillende grootten, videocoderingen of uitgenomen pagina's uit PDF- of Adobe InDesign-bestanden zijn.
- Optionele opmerkingen.
In Experience Manager een map bevat de volgende componenten:
- Entiteiten: De onderliggende elementen van activa zijn de uitvoeringen.
- Eigenschappen.
- Koppelingen.
De HTTP-API voor middelen bevat de volgende functies:
- Een mappenlijst ophalen.
- Een map maken.
- Een element maken.
- Binair element bijwerken.
- Metagegevens van elementen bijwerken.
- Een elementuitvoering maken.
- Een elementuitvoering bijwerken.
- Een middelenopmerking maken.
- Een map of element kopiëren.
- Een map of element verplaatsen.
- Een map, element of uitvoering verwijderen.
cURL
.Vereisten
- Ga naar
https://[aem_server]:[port]/system/console/configMgr
. - Ga naar Adobe Granite CSRF Filter.
- Controleer of de eigenschap Filter Methods omvat:
POST
,PUT
,DELETE
.
Een mappenlijst ophalen retrieve-a-folder-listing
Haalt een Siren-weergave op van een bestaande map en van de onderliggende entiteiten (submappen of elementen).
Verzoek: GET /api/assets/myFolder.json
Antwoordcodes: De responscodes zijn:
- 200 - OK - succes.
- 404 - NIET GEVONDEN - map bestaat niet of is niet toegankelijk.
- 500 - INTERNE SERVERFOUT - als iets anders fout gaat.
Antwoord: De klasse van de geretourneerde entiteit is een middel of een map. De eigenschappen van ingesloten entiteiten vormen een subset van de volledige reeks eigenschappen van elke entiteit. Om een volledige vertegenwoordiging van de entiteit te verkrijgen, zouden de cliënten de inhoud van URL moeten terugwinnen waarop de verbinding met rel
van self
.
Een map maken create-a-folder
Hiermee maakt u een nieuwe sling
: OrderedFolder
op het opgegeven pad. Indien een *
wordt verstrekt in plaats van een knoopnaam, gebruikt servlet de parameternaam als knooppuntnaam. Gegevens die worden geaccepteerd als aanvraaggegevens zijn een Sirene-weergave van de nieuwe map of een set naam-waardeparen, gecodeerd als application/www-form-urlencoded
of multipart
/ form
- data
Deze optie is handig als u een map rechtstreeks vanuit een HTML-formulier wilt maken. Bovendien kunnen eigenschappen van de map worden opgegeven als URL-queryparameters.
Een API-aanroep mislukt met een 500
antwoordcode als het bovenliggende knooppunt van het opgegeven pad niet bestaat. Een vraag keert een reactiecode terug 409
als de map al bestaat.
Parameters: name
is de mapnaam.
Verzoek
POST /api/assets/myFolder -H"Content-Type: application/json" -d '{"class":"assetFolder","properties":{"title":"My Folder"}}'
POST /api/assets/* -F"name=myfolder" -F"title=My Folder"
Antwoordcodes: De responscodes zijn:
- 201 - GEMAAKT - over succesvol maken.
- 409 - CONFLICT - als de map al bestaat.
- 412 - VOORWAARDE MISLUKT - als de wortelinzameling niet kan worden gevonden of worden betreden.
- 500 - INTERNE SERVERFOUT - als iets anders fout gaat.
Een element maken create-an-asset
Plaats het opgegeven bestand op het opgegeven pad om een element te maken in de DAM-opslagplaats. Indien een *
wordt opgegeven in plaats van een knooppuntnaam, gebruikt servlet de parameternaam of de bestandsnaam als knooppuntnaam.
Parameters: De parameters zijn name
voor de elementnaam en file
voor de bestandsverwijzing.
Verzoek
POST /api/assets/myFolder/myAsset.png -H"Content-Type: image/png" --data-binary "@myPicture.png"
POST /api/assets/myFolder/* -F"name=myAsset.png" -F"file=@myPicture.png"
Antwoordcodes: De responscodes zijn:
- 201 - GEMAAKT - als Asset is gemaakt.
- 409 - CONFLICT - als Activum al bestaat.
- 412 - VOORWAARDE MISLUKT - als de wortelinzameling niet kan worden gevonden of worden betreden.
- 500 - INTERNE SERVERFOUT - als iets anders fout gaat.
Elementbinair bijwerken update-asset-binary
Hiermee werkt u de binaire waarde (uitvoering met de oorspronkelijke naam) van een element bij. Een update activeert de standaardworkflow voor middelenverwerking om deze uit te voeren, als deze is geconfigureerd.
Verzoek: PUT /api/assets/myfolder/myAsset.png -H"Content-Type: image/png" --data-binary @myPicture.png
Antwoordcodes: De responscodes zijn:
- 200 - OK - als Asset met succes is bijgewerkt.
- 404 - NIET GEVONDEN - als Asset niet kon worden gevonden of betreden op de verstrekte URI.
- 412 - VOORWAARDE MISLUKT - als de wortelinzameling niet kan worden gevonden of worden betreden.
- 500 - INTERNE SERVERFOUT - als iets anders fout gaat.
Metagegevens van elementen bijwerken update-asset-metadata
Werkt de metagegevenseigenschappen van het element bij. Als u een eigenschap in het dialoogvenster dc:
naamruimte, wordt dezelfde eigenschap in de API bijgewerkt jcr
naamruimte. De API synchroniseert de eigenschappen niet onder de twee naamruimten.
Verzoek: PUT /api/assets/myfolder/myAsset.png -H"Content-Type: application/json" -d '{"class":"asset", "properties":{"jcr:title":"My Asset"}}'
Antwoordcodes: De responscodes zijn:
- 200 - OK - als Asset met succes is bijgewerkt.
- 404 - NIET GEVONDEN - als Asset niet kon worden gevonden of betreden op de verstrekte URI.
- 412 - VOORWAARDE MISLUKT - als de wortelinzameling niet kan worden gevonden of worden betreden.
- 500 - INTERNE SERVERFOUT - als iets anders fout gaat.
Metagegevens synchroniseren tussen dc
en jcr
namespace sync-metadata-between-namespaces
De API-methode werkt de metagegevenseigenschappen in de jcr
naamruimte. De met Touch-UI aangebrachte updates wijzigen de eigenschappen van de metagegevens in het dialoogvenster dc
naamruimte. De metagegevenswaarden synchroniseren tussen dc
en jcr
naamruimte, kunt u een workflow maken en Experience Manager configureren om de workflow uit te voeren bij het bewerken van elementen. Gebruik een ECMA-script om de vereiste eigenschappen van metagegevens te synchroniseren. In het volgende voorbeeldscript wordt de titeltekenreeks gesynchroniseerd tussen dc:title
en jcr:title
.
var workflowData = workItem.getWorkflowData();
if (workflowData.getPayloadType() == "JCR_PATH")
{
var path = workflowData.getPayload().toString();
var node = workflowSession.getSession().getItem(path);
var metadataNode = node.getNode("jcr:content/metadata");
var jcrcontentNode = node.getNode("jcr:content");
if (jcrcontentNode.hasProperty("jcr:title"))
{
var jcrTitle = jcrcontentNode.getProperty("jcr:title");
metadataNode.setProperty("dc:title", jcrTitle.toString());
metadataNode.save();
}
}
Een elementuitvoering maken create-an-asset-rendition
Maak een nieuwe elementuitvoering voor een element. Als de naam van de parameter request niet wordt opgegeven, wordt de bestandsnaam gebruikt als naam voor de vertoning.
Parameters: De parameters zijn name
voor de naam van de vertoning en file
als bestandsverwijzing.
Verzoek
POST /api/assets/myfolder/myasset.png/renditions/web-rendition -H"Content-Type: image/png" --data-binary "@myRendition.png"
POST /api/assets/myfolder/myasset.png/renditions/* -F"name=web-rendition" -F"file=@myRendition.png"
Antwoordcodes: De responscodes zijn:
- 201 - GEMAAKT - als de vertoning is gemaakt.
- 404 - NIET GEVONDEN - als Asset niet kon worden gevonden of betreden op de verstrekte URI.
- 412 - VOORWAARDE MISLUKT - als de wortelinzameling niet kan worden gevonden of worden betreden.
- 500 - INTERNE SERVERFOUT - als iets anders fout gaat.
Een elementuitvoering bijwerken update-an-asset-rendition
Updates vervangen een elementuitvoering door de nieuwe binaire gegevens.
Verzoek: PUT /api/assets/myfolder/myasset.png/renditions/myRendition.png -H"Content-Type: image/png" --data-binary @myRendition.png
Antwoordcodes: De responscodes zijn:
- 200 - OK - als de vertoning correct is bijgewerkt.
- 404 - NIET GEVONDEN - als Asset niet kon worden gevonden of betreden op de verstrekte URI.
- 412 - VOORWAARDE MISLUKT - als de wortelinzameling niet kan worden gevonden of worden betreden.
- 500 - INTERNE SERVERFOUT - als iets anders fout gaat.
Een opmerking toevoegen aan een element create-an-asset-comment
Hiermee maakt u een nieuwe middelenopmerking.
Parameters: De parameters zijn message
voor de berichttekst van de opmerking en annotationData
voor de Annotatiegegevens in JSON-indeling.
Verzoek: POST /api/assets/myfolder/myasset.png/comments/* -F"message=Hello World." -F"annotationData={}"
Antwoordcodes: De responscodes zijn:
- 201 - GEMAAKT - als Opmerking is gemaakt.
- 404 - NIET GEVONDEN - als Asset niet kon worden gevonden of betreden op de verstrekte URI.
- 412 - VOORWAARDE MISLUKT - als de wortelinzameling niet kan worden gevonden of worden betreden.
- 500 - INTERNE SERVERFOUT - als iets anders fout gaat.
Een map of element kopiëren copy-a-folder-or-asset
Hiermee kopieert u een map of element die beschikbaar is op het opgegeven pad naar een nieuwe bestemming.
Aanvraagkoppen: De parameters zijn:
X-Destination
- een nieuwe doel-URI binnen het bereik van de API-oplossing waarnaar de bron moet worden gekopieerd.X-Depth
- hetzijinfinity
of0
. Gebruiken0
kopieert alleen de bron en zijn eigenschappen en niet zijn kinderen.X-Overwrite
- GebruikF
om te voorkomen dat een actief op de bestaande bestemming wordt overschreven.
Verzoek: COPY /api/assets/myFolder -H"X-Destination: /api/assets/myFolder-copy"
Antwoordcodes: De responscodes zijn:
- 201 - GEMAAKT - als de map/het element naar een niet-bestaand doel is gekopieerd.
- 204 - GEEN INHOUD - als de map of het middel naar een bestaande bestemming is gekopieerd.
- 412 - PRECONDITION MISLUKT - als een aanvraagkoptekst ontbreekt.
- 500 - INTERNE SERVERFOUT - als iets anders fout gaat.
Een map of element verplaatsen move-a-folder-or-asset
Hiermee verplaatst u een map of element op het opgegeven pad naar een nieuwe bestemming.
Aanvraagkoppen: De parameters zijn:
X-Destination
- een nieuwe doel-URI binnen het bereik van de API-oplossing waarnaar de bron moet worden gekopieerd.X-Depth
- hetzijinfinity
of0
. Gebruiken0
kopieert alleen de bron en zijn eigenschappen en niet zijn kinderen.X-Overwrite
- Gebruik beideT
bestaande bronnen te verwijderen ofF
om te voorkomen dat een bestaande bron wordt overschreven.
Verzoek: MOVE /api/assets/myFolder -H"X-Destination: /api/assets/myFolder-moved"
Antwoordcodes: De responscodes zijn:
- 201 - GEMAAKT - als de map/het element naar een niet-bestaand doel is gekopieerd.
- 204 - GEEN INHOUD - als de map of het middel naar een bestaande bestemming is gekopieerd.
- 412 - PRECONDITION MISLUKT - als een aanvraagkoptekst ontbreekt.
- 500 - INTERNE SERVERFOUT - als iets anders fout gaat.
Een map, element of uitvoering verwijderen delete-a-folder-asset-or-rendition
Hiermee verwijdert u een resource (-tree) bij het opgegeven pad.
Verzoek
DELETE /api/assets/myFolder
DELETE /api/assets/myFolder/myAsset.png
DELETE /api/assets/myFolder/myAsset.png/renditions/original
Antwoordcodes: De responscodes zijn:
- 200 - OK - als de map is verwijderd.
- 412 - VOORWAARDE MISLUKT - als de wortelinzameling niet kan worden gevonden of worden betreden.
- 500 - INTERNE SERVERFOUT - als iets anders fout gaat.