cs-icon.svg

Get Started with Android SDK

This guide will help you get started with Contentstack Android SDK to build apps powered by Contentstack.

Prérequis :

To get started with Android SDK, you will need one the following:

Installation du SDK et configuration de l'Aperçu en temps réel

To integrate your Android project with Contentstack, install the following dependency:

Gradle

To add a dependency to your project, open the build.gradle file of the app module and paste the desired dependency under the "dependencies" tag.

For instance, here's an example of adding the Contentstack SDK as a dependency in the module-level build.gradle file.

// build.gradle (Module-level)

apply plugin: 'com.android.application'

android {
    // ...
}

dependencies {
    implementation 'com.contentstack.sdk:android:{latest_version}'
}

Note: You can find the latest version of dependency here.

Initialiser le SDK

Contentstack offers four regions North America (NA), Europe (EU), Azure North America (AZURE_NA), and Azure Europe (AZURE_EU) as data centers to store customers' account details and data. These regions are independent of each other and therefore have a dedicated set of instructions to use SDKs offered by Contentstack.

Pour utiliser les SDK pour la région Europe, Azure NA ou Azure EU, vous devrez apporter certaines modifications à la configuration du SDK, comme détaillé ci-dessous, et le reste des instructions reste le même.

To initialize the SDK, specify application context, stack’s API Key, delivery token, and name of the environment where will publish your content, as shown in the snippet below:

Stack stack = Contentstack.stack(applicationcontext, "apiKey", "deliveryToken", "environment");

Remarque: Par défaut, le SDK utilise la région Amérique du Nord. Les modifications de configuration ne sont pas requises pour les utilisateurs de la région Amérique du Nord.

For Europe, Azure North America, or Azure Europe check the code of your region and configure your SDK.

Une fois que vous avez initialisé le SDK, vous pouvez interroger les entrées pour récupérer le contenu requis.

Pour définir la branche pour l'Europe, Azure Amérique du Nord ou Azure Europe, vérifiez le code de votre région et initialisez le SDK dans une branche particulière.

Politiques de cache

Les politiques de cache vous permettent de définir la source à partir de laquelle le SDK récupérera le contenu. En fonction de la politique sélectionnée, le SDK peut obtenir les données du cache, du réseau ou des deux.

Examinons les différentes stratégies de cache disponibles:

STRATÉGIESDESCRIPTION
NETWORK_ONLY (par défaut)Si vous définissez NETWORK_ONLY comme stratégie de cache, le SDK récupère les données via un appel réseau et enregistre les données récupérées dans le cache. Ceci est défini comme stratégie par défaut.
CACHE_ELSE_NETWORKSi vous définissez CACHE_ELSE_NETWORK comme stratégie de cache, le SDK obtient les données du cache. Cependant, s'il ne parvient pas à récupérer les données du cache, il passe un appel réseau.
NETWORK_ELSE_CACHESi vous définissez NETWORK_ELSE_CACHE comme stratégie de cache, le SDK obtient les données à l'aide d'un appel réseau. Cependant, si l'appel échoue, il récupère les données du cache.
CACHE_ONLYSi vous définissez CACHE_ONLY comme stratégie de cache, le SDK obtient les données du cache.
CACHE_THEN_NETWORKSi vous définissez CACHE_THEN_NETWORK comme stratégie de cache, le SDK obtient les données du cache, puis effectue un appel réseau. (Un rappel réussi sera invoqué deux fois.)
IGNORE_CACHEIf you set IGNORE_CACHE as the cache policy, the SDK always retrieves data by making a network call, without maintaining any cache.

Vous pouvez définir une stratégie de cache sur une entrée, un actif et/ou un objet de requête.

Définition d'une politique de cache sur une entrée

Pour définir la politique de cache sur tous les objets de requête d'une entrée, reportez-vous au code ci-dessous:

public void entry_NETWORK_ONLY() {
    final Entry entry = stack.contentType("user").entry("entryUid");
    entry.setCachePolicy(CachePolicy.NETWORK_ONLY);
    entry.addParam("key", "some_value");
    entry.fetch(new EntryResultCallBack() {
        @Override
        public void onCompletion(ResponseType responseType, Error error) {
            if (error == null) {
                //Success block
            } else {
                //Error block
            }
        }
    });}

Définition d'une politique de cache sur un actif

Pour définir la politique de cache sur tous les objets de requête d'un actif, reportez-vous au code ci-dessous:

public void assets_NETWORK_ONLY() {
    stack.assetLibrary().setCachePolicy(CachePolicy.NETWORK_ONLY);
    stack.assetLibrary().fetchAll(new FetchAssetsCallback() {
        @Override
        public void onCompletion(ResponseType responseType, List <Asset> assets, Error error) {
            if (error == null) {
                // Success block
            } else {
                // Failure block
            }
        }
    });
}

Définition d'une politique de cache sur un objet de requête

Pour définir/remplacer une règle de cache sur un objet de requête spécifique, reportez-vous au code ci-dessous:

public void query_NETWORK_ONLY() {
    Query query = stack.contentType("categories").query();
    query.where("Title", "Your Title");
    query.setCachePolicy(CachePolicy.NETWORK_ONLY);
    query.find(new QueryResultsCallBack() {
        @Override
        public void onCompletion(ResponseType responseType, QueryResult queryresult, Error error) {
            if (error == null) {
                // Success block
            } else {
                // Failure block
            }
        }
    });
}

Requêtes de base

Les SDK Contentstack vous permettent d'interagir avec les API contenu Livraison et de récupérer le contenu de Contentstack. Ils sont de nature en lecture seule. Les SDK récupèrent et diffusent le contenu depuis le serveur le plus proche via Fastly, notre CDN puissant et robuste.

Récupérer une seule entrée de contenu

To retrieve a single entry from a content type use the code snippet given below:

ContentType contentType = stack.contentType("contentTypeUid");
Entry blogEntry = contentType.entry("entryUid");
blogEntry.fetch(new EntryResultCallBack() {
    @Override
    public void onCompletion(ResponseType responseType, Error error) {
        if (error == null) {
            // Success block
        } else {
            // Error block  
        }
    }
});

Obtenir plusieurs entrées

Pour récupérer plusieurs entrées d'un type de contenu particulier, utilisez l'extrait de code ci-dessous:

//stack is an instance of Stack class
Query blogQuery = stack.contentType("contentTypeUid").query();
blogQuery.find(new QueryResultsCallBack() {
    @Override
    public void onCompletion(ResponseType responseType, QueryResult queryResult, Error error) {
        if(error == null){
            //Success block
        }else{
            //Error block
        }
    }
});

These were examples of some of the basic queries of the SDK. For advanced queries, refer to Contentstack Android SDK API reference.

Remarque : Currently, the Android SDK does not support multiple content types referencing in a single query. For more information on how to query entries and assets, refer the Requêtes section of our Content Delivery API documentation.

Pagination des réponses

Dans une seule instance, la requête Get Multiple Entries récupérera uniquement les 100 premiers éléments du type de contenu spécifié. Vous pouvez paginer et récupérer le reste des éléments par lots à l'aide des paramètres skip et limit dans les requêtes ultérieures.

Stack stack = Contentstack.stack(applicationContext, "apiKey", "deliveryToken", "environment");
Query csQuery = stack.contentType("contentTypeId").query();
csQuery.skip(20);
csQuery.limit(20);
csQuery.find(new QueryResultsCallBack() {
  @Override
  public void onCompletion(ResponseType responseType, QueryResult queryResult, Error error) {
      System.out.println("response "+queryResult)
  }
});

Limites

  • We have a URL size limitation of 8KB on API Requests that hit our CDN services. Any Request URL that goes above this size limit will receive the 400 - Bad request error response. Please make sure you limit the size of your API Requests.
  • The Android SDK does not support multiple content types referencing in a single query.
  • Currently, the Android SDK does not yet support querying Global Field schemas (All Global Fields and Single Global Field). You can include these details when querying content type details (All Content Types and Single Content Type) with the include_global_field_schema query parameter.

Pour en savoir plus

Cet article vous a-t-il été utile ?
^