1. Clients

Content items client

A content item contains the content data for a specific item. The following methods are available for content items.

MethodDescription
GET /api/content/v1/itemsRetrieves the prefix, label, and visualization properties of all content item entities.
POST /api/content/v1/itemsCreates a content item entity.
GET /api/content/v1/items/<CONTENT_ITEM_ID>Retrieves a specific content item entity.
PUT /api/content/v1/items/<CONTENT_ITEM_ID>Updates a specific content item entity.
DELETE /api/content/v1/items/<CONTENT_ITEM_ID>Deletes a specific content item entity.
POST /api/content/v1/items/<CONTENT_ITEM_ID>/publishPublishes a specific content item entity to the Experience Edge.
POST /api/content/v1/items/<CONTENT_TYPE_ID>Create a locale variant of a content item
DELETE /api/content/v1/items/<CONTENT_ITEM_ID>/publishDeletes a specific content item entity from the Experience Edge.

The following example illustrates these methods:

public interface IContentItemClient
{
    /// POST /api/content/v1/items
    /// <summary>
    /// Creates a new content item.
    /// </summary>
    /// <param name="contentTypeId">The content type identifier.</param>
    /// <param name="contentItem"></param>
    /// <param name="localeId"></param>///
    /// <param name="cancellationToken"></param>
    /// <returns></returns>
    Task<ContentItem> CreateAsync(
        string contentTypeId,
        ContentItem contentItem,
        string? localeId,
        CancellationToken cancellationToken = default);

    /// POST /api/content/v1/items
    /// <summary>
    /// Creates a new (not localized) content item
    /// </summary>
    /// <param name="contentTypeId">The content type identifier.</param>
    /// <param name="contentItem"></param>
    /// <param name="cancellationToken"></param>
    /// <returns></returns>
    Task<ContentItem> CreateAsync(
        string contentTypeId,
        ContentItem contentItem,
        CancellationToken cancellationToken = default);

    /// PUT /api/content/v1/items/<contentItemId>
    /// <summary>
    /// Updates an existing content item.
    /// </summary>
    /// <param name="contentItem"></param>
    /// <param name="localeId"></param>///
    /// <param name="cancellationToken"></param>
    /// <returns></returns>
    Task<ContentItem> UpdateAsync(
        ContentItem contentItem,
        string? localeId,
        CancellationToken cancellationToken = default);

    /// PUT /api/content/v1/items/<contentItemId>
    /// <summary>
    /// Updates an existing (not localized) content item.
    /// </summary>
    /// <param name="contentItem"></param>
    /// <param name="cancellationToken"></param>
    /// <returns></returns>
    Task<ContentItem> UpdateAsync(
        ContentItem contentItem,
        CancellationToken cancellationToken = default);

    /// DELETE /api/content/v1/items/<contentItemId>
    /// <summary>
    /// Deletes the specified content item.
    /// </summary>
    /// <param name="contentItemId"></param>
    /// <param name="localeId"></param>///
    /// <param name="cancellationToken"></param>
    /// <returns></returns>
    Task DeleteAsync(
        string contentItemId,
        string? localeId,
        CancellationToken cancellationToken = default);

    /// DELETE /api/content/v1/items/<contentItemId>
    /// <summary>
    /// Deletes the specified (not localized) content item.
    /// </summary>
    /// <param name="contentItemId"></param>
    /// <param name="cancellationToken"></param>
    /// <returns></returns>
    Task DeleteAsync(
        string contentItemId,
        CancellationToken cancellationToken = default);

    /// GET /api/content/v1/items
    /// <summary>
    /// Gets the content items.
    /// </summary>
    /// <param name="searchRequest"></param>
    /// <param name="cancellationToken"></param>
    /// <returns></returns>
    Task<PagedResponse<ContentItem>> GetAsync(
        ContentItemSearchRequest? searchRequest = null,
        CancellationToken cancellationToken = default);

    /// <summary>
    /// Enumerates the content items.
    /// </summary>
    /// <param name="searchRequest"></param>
    /// <param name="cancellationToken"></param>
    /// <returns></returns>
    IAsyncEnumerable<ContentItem> EnumerateAsync(
        ContentItemSearchRequest? searchRequest = null,
        CancellationToken cancellationToken = default);

    /// GET /api/content/v1/items/<contentItemId>
    /// <summary>
    /// Gets a single content item by its identifier.
    /// </summary>
    /// <param name="contentItemId"></param>
    /// <param name="localeId"></param>///
    /// <param name="cancellationToken"></param>
    /// <returns></returns>
    Task<ContentItem?> SingleAsync(
        string contentItemId,
        string? localeId,
        CancellationToken cancellationToken = default);

    /// GET /api/content/v1/items/<contentItemId>
    /// <summary>
    /// Gets a single (not localized) content item by its identifier.
    /// </summary>
    /// <param name="contentItemId"></param>
    /// <param name="cancellationToken"></param>
    /// <returns></returns>
    Task<ContentItem?> SingleAsync(
        string contentItemId,
        CancellationToken cancellationToken = default);

    /// GET /api/content/v1/items/<contentItemId>
    /// <summary>
    /// Gets a single content item by its identifier from the local in-memory cache, otherwise falls back to <see cref="SingleAsync(string,string?,CancellationToken)"/>.
    /// </summary>
    /// <param name="contentItemId"></param>
    /// <param name="localeId"></param>///
    /// <param name="cancellationToken"></param>
    /// <returns></returns>
    Task<ContentItem?> SingleCachedAsync(
        string contentItemId,
        string? localeId,
        CancellationToken cancellationToken = default);

    /// GET /api/content/v1/items/<contentItemId>
    /// <summary>
    /// Gets a single (not localized) content item by its identifier from the local in-memory cache, otherwise falls back to <see cref="SingleAsync(string,CancellationToken)"/>.
    /// </summary>
    /// <param name="contentItemId"></param>
    /// <param name="cancellationToken"></param>
    /// <returns></returns>
    Task<ContentItem?> SingleCachedAsync(
        string contentItemId,
        CancellationToken cancellationToken = default);

    /// POST /api/content/v1/items/<contentItemId>/publish
    /// <summary>
    /// Publishes the specified content item.
    /// </summary>
    /// <param name="contentItemId"></param>
    /// <param name="localeId"></param>
    /// <param name="cancellationToken"></param>
    /// <returns></returns>
    Task PublishAsync(
        string contentItemId,
        string? localeId,
        CancellationToken cancellationToken = default);

    /// POST /api/content/v1/items/<contentItemId>/publish
    /// <summary>
    /// Publishes the specified (not localized) content item.
    /// </summary>
    /// <param name="contentItemId"></param>
    /// <param name="cancellationToken"></param>
    /// <returns></returns>
    Task PublishAsync(
        string contentItemId,
        CancellationToken cancellationToken = default);

    /// DELETE /api/content/v1/items/<contentItemId>/publish
    /// <summary>
    /// Unpublishes the specified content item.
    /// </summary>
    /// <param name="contentItemId"></param>
    /// <param name="localeId"></param>
    /// <param name="cancellationToken"></param>
    /// <returns></returns>
    Task UnpublishAsync(
        string contentItemId,
        string? localeId,
        CancellationToken cancellationToken = default);

    /// DELETE /api/content/v1/items/<contentItemId>/publish
    /// <summary>
    /// Unpublishes the specified (not localized) content item.
    /// </summary>
    /// <param name="contentItemId"></param>
    /// <param name="cancellationToken"></param>
    /// <returns></returns>
    Task UnpublishAsync(
        string contentItemId,
        CancellationToken cancellationToken = default);

    /// POST /api/content/v1/items/<contentItemId>/copy
    /// <summary>
    /// Create a locale variant of a content item.
    /// </summary>
    /// <param name="contentItemId">The content item identifier.</param>
    /// <param name="sourceLocale">Locale of the existing content item</param>
    /// <param name="primary"><see langword="true" /> to get source locale of the primary content item; otherwise <see langword="false" />.</param>
    /// <param name="locale">Locale to copy to</param>
    /// <param name="cancellationToken"></param>
    Task<ContentItem> LocaleCopyAsync(
        string contentItemId,
        string locale,
        string? sourceLocale = null,
        bool? primary = null,
        CancellationToken cancellationToken = default);
}
If you have suggestions for improving this article, let us know!