none
Afficher items de liste avec REST + JSON RRS feed

  • Question

  • Bonjour,

    j'essaie de récupérer et d'afficher le contenu d'une liste Sharepoint 2013 dans une apps en utilisant REST et la bibliothèque inter-domaines. Le résultat est stocké dans un objet JSON mais je ne sais pas comment lire cet objet car je ne connais pas sa structure. J'ai suivi la documentation MSDN :

    var items = ""; var results = jsonObject.d.results; //qu'est ce que "d" ? for (var i = 0; i < results.length; i++) { items = items + "<p><h1>" + results[i].Title + "</h1>" + results[i].Body + "</p><hr>"; } document.getElementById("listItems").innerHTML = items; //j'alimente ma div

    Quand je remplace "Title" et "Body" par des colonnes existantes dans ma liste ça ne fonctionne pas. Ma question est : qu'est qu'on trouve dans jsonObject afin que je fasse les bons appels results[i].monChamp ? Merci de votre aide.




    • Modifié Allie_ lundi 5 août 2013 09:22
    lundi 5 août 2013 09:06

Réponses

  • Merci pour la réponse. Le titre est correct mais j'ai trouvé mon erreur, que je n'ose même pas donner tellement elle est bête :). Merci de votre aide. Comment on supprime un post ?


    lundi 5 août 2013 12:59
  • Bonjour

    Le interdomaine c'est pour faire des appels coté client (en JS) depuis votre APP qui tourne sur un autre domaine que le site sharepoint hébergeant les données, typiquement sur des Apps de type SharePoint Hosted

    Si vous partez sur une App de type AutoHosted ou ProviderHosted où vous ferez les appels au modèles objet sharepoint en C#, vous n'aurez pas cette problématique d'interdomaine (qui est au niveau navigateur client). Donc vous utiliserez directement le CSOM avec le Clientcontext.

    Si vous etes sur du AutoHosted, votre APPs sera hebergée sur Azure, vous pourrez faire du OAuth avec l'ACS ce qui sera plus simple à utiliser car mieux outillé

    Si vous êtes sur du provider Hosted, votre APPs sera hébergée chez vous (serveur web IIS par exemple) il faudra faire du OAuth en ayant au préalable établi une relation de trust entre le serveur sharepoint et votre serveur d'Apps (via un certificat, du ssl, du powershell, etc...) et c'est plus lourd à configurer, mais ça marche aussi !


    Blog Sharepoint : www.paslatek.net Twitter : @LimozinLionel

    • Proposé comme réponse lionel limozin mercredi 7 août 2013 13:59
    • Marqué comme réponse Allie_ lundi 12 août 2013 13:58
    mercredi 7 août 2013 13:59

Toutes les réponses

  • J'ai trouvé...je peux voir mon objet JSON dans ma console firebug. En fait il stocke une erreur parce qu'il ne retrouve pas la liste que je lui demande : La ressource est introuvable pour la demande getByTile.

    Pourtant je suis sûre du nom de la liste et l'url du site. Par contre je suis moins sûre de mon appel REST.

    function getListItems(executor) {
        executor.executeAsync(
               {
                   url:
                       appweburl +
                       "/_api/SP.AppContextSite(@target)/web/lists/getByTile('MaListe')/items?@target='"+
                       hostweburl + "'",
                   method: "GET",
                   headers: { "Accept": "application/json; odata=verbose" },
                   success: successListItems,
                   error: errorListItems
               }
           );
    }
    

    lundi 5 août 2013 10:36
  • Bonjour

    Attention que l'url de la liste ou son nom interne peut etre bien différent du Titre de la liste.

    Je vois ds votre code getByTitle('MaListe')

    est-ce que le titre ne serait pas 'Ma Liste' par hasard ?


    Blog Sharepoint : www.paslatek.net Twitter : @LimozinLionel

    lundi 5 août 2013 12:04
  • Merci pour la réponse. Le titre est correct mais j'ai trouvé mon erreur, que je n'ose même pas donner tellement elle est bête :). Merci de votre aide. Comment on supprime un post ?


    lundi 5 août 2013 12:59
  • Salut Allie_

    Il sera quand même intéressant d'avoir un retour. Il n y pas de question/réponses "bête"..

    Merci d'avance,

    Gokan


    My Technical Blog on Wordpress

    mardi 6 août 2013 09:49
  • Merci Gokan, il s'agissait d'une faute de frappe ! ça n'apportera donc rien à la communauté :(

    J'ai cependant un autre soucis. Je voudrais maintenant faire la même chose (récupérer et afficher le contenu d'une liste Sharepoint 2013 dans une apps) mais dans mon code behind c# pour des raisons de performances. J'ai quelques doutes que la documentation MSDN n'a pas éclaircis.

    Est ce que du coup je suis obligé de laisser tomber la bibliothèque inter-domaines et utiliser l'OAuth pour accéder à mes ressources SP ?


    • Modifié Allie_ mercredi 7 août 2013 08:46
    mercredi 7 août 2013 08:31
  • Bonjour

    Le interdomaine c'est pour faire des appels coté client (en JS) depuis votre APP qui tourne sur un autre domaine que le site sharepoint hébergeant les données, typiquement sur des Apps de type SharePoint Hosted

    Si vous partez sur une App de type AutoHosted ou ProviderHosted où vous ferez les appels au modèles objet sharepoint en C#, vous n'aurez pas cette problématique d'interdomaine (qui est au niveau navigateur client). Donc vous utiliserez directement le CSOM avec le Clientcontext.

    Si vous etes sur du AutoHosted, votre APPs sera hebergée sur Azure, vous pourrez faire du OAuth avec l'ACS ce qui sera plus simple à utiliser car mieux outillé

    Si vous êtes sur du provider Hosted, votre APPs sera hébergée chez vous (serveur web IIS par exemple) il faudra faire du OAuth en ayant au préalable établi une relation de trust entre le serveur sharepoint et votre serveur d'Apps (via un certificat, du ssl, du powershell, etc...) et c'est plus lourd à configurer, mais ça marche aussi !


    Blog Sharepoint : www.paslatek.net Twitter : @LimozinLionel

    • Proposé comme réponse lionel limozin mercredi 7 août 2013 13:59
    • Marqué comme réponse Allie_ lundi 12 août 2013 13:58
    mercredi 7 août 2013 13:59