1. Clients

Locales client

A locale is a culture code that consists of a two-letter language code and a two-letter region code. A content item can be assigned a locale or it can have no locale (that is, have a null locale). A content item is uniquely identified by its ID and locale value (either language-region code or null value): two content items cannot have the same ID and the same locale value. A content item and a localization might have the same ID, but their locales will differ.

MethodDescription
GET /api/content/v1/localesRetrieves the locales.
GET /api/content/v1/locales/<LOCALE_ID>Retrieves a locale with a specific ID.
POST /api/content/v1/localesCreates a new locale.
PUT /api/content/v1/locales/<LOCALE_ID>Updates the name of a specific locale.
DELETE /api/content/v1/locales/<LOCALE_ID>Deletes a specific locale.
GET /api/content/v1/locales/supportedRetrieves a list of supported locales.

The following example illustrates these methods:

public interface ILocaleClient
{
    /// POST /api/content/v1/locales
    /// <summary>
    /// Creates a new locale and inserts it in cache.
    /// </summary>
    /// <param name="locale"></param>
    /// <param name="cancellationToken"></param>
    /// <returns></returns>
    Task<Locale> CreateAsync(
        Locale locale,
        CancellationToken cancellationToken = default);

    /// GET /api/content/v1/locales/<localeId>
    /// <summary>
    /// Gets a single locale by its id.
    /// </summary>
    /// <param name="localeId"></param>
    /// <param name="cancellationToken"></param>
    /// <returns>The locale if found or null.</returns>
    public Task<Locale?> SingleAsync(
            string localeId,
            CancellationToken cancellationToken = default);

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

    /// PUT /api/content/v1/locales/<localeId>
    /// <summary>
    /// Updates an existing locale.
    /// </summary>
    /// <param name="locale"></param>
    /// <param name="cancellationToken"></param>
    /// <returns></returns>
    Task<Locale> UpdateAsync(
          Locale locale,
          CancellationToken cancellationToken = default);

    /// GET /api/content/v1/locales
    /// <summary>
    /// Gets all the locales.
    /// </summary>
    /// <param name="cancellationToken"></param>
    /// <returns>Total number found in storage and a list of locales</returns>
    Task<NonPagedResponse<Locale>> GetAsync(
         CancellationToken cancellationToken = default);

    /// <summary>
    /// Enumerates the locales.
    /// </summary>
    /// <param name="cancellationToken"></param>
    /// <returns></returns>
    IAsyncEnumerable<Locale> EnumerateAsync(
         CancellationToken cancellationToken = default);

    /// GET /api/content/v1/locales/supported
    /// <summary>
    /// Gets the supported locales
    /// </summary>
    /// <returns>Response with supported locales</returns>
    Task<NonPagedResponse<Locale>> GetSupportedLocalesAsync();
If you have suggestions for improving this article, let us know!