JaliosXperience
fr en
Link

JCMS OpenAPI vs Extensions

David Koss - on 12/1/10 at 4:21 PM

Bonjour,

Est-il possible ce créer des catégories via des appels webservices avec JCMS OpenAPI, tout en alimentant des champs ajoutés via des extensions de catégorie ?

Par curiosité, savez-vous aussi si c'est possible avec des extensions d'autres types de données et si on peut aussi récupérer les données de ces champs de la même manières ?

Benoît Dissert - on 12/2/10 at 9:49 AM

Salut David,

C'est pour supporter du legacy ?

Je pose cette question parceque les extensions sont un mécanisme qui n'est plus considéré comme le plus opportun aujourd'hui (cf http://support.jalios.com/jcms/jx_59072/jcms-6-developper-avec-les-extradata-et-les-extradbdata#toclink6).

Le problème avec les extensions étant qu'ils ne permettent pas d'effectuer des développement non intrusifs.

En l’occurrence, pour répondre à ta question, je n'ai jamais essayer de créer/modifier des extensions par OpenAPI et je pense que ce n'est pas possible si tu ne développes pas ta propre ressource OpenAPI (ce qui n'est pas très difficile cf http://support.jalios.com/jcms/jx_59631/services-web-restful-avec-jcms-open-api#toclink10).

Par contre, l'OpenAPI supporte nativement la prise en compte/lecture/création/modification des extradatas/extradbdata.

Quitte à faire un développement (ressource OpenAPI vs migration extension vers extradata), je recommanderais plutôt de faire la migration vers extradata, de manière à supprimer une dépendance vers une solution technique qui, sans être dépréciée, n'est plus la plus recommandée.

David Koss - on 12/2/10 at 10:35 AM

Salut Benoit,

En fait je n'ai pas d'existant, au contraire je suis en train de faire la conception de mon projet. Je t'explique mes besoins :

Premièrement, j'ai besoin d'importer des données depuis un système existant sur JCMS, dont des catégories qui constituent des thématiques associées à des contenus. J'ai besoin de pouvoir exploiter ces thématiques de façon souples, c'est pourquoi j'en fait des catégories dans une branche dédiée. Cette import va être fait via des appels WebServices, car nous avons essentiellement des compétences PHP et voulons pouvoir maintenir et faire évoluer facilement les ponts entre nos systèmes existant et JCMS (c'est pourquoi nous évitons au maximum de faire des développements Java, même pour l'import de contenus). En plus j'ai besoin de conserver d'autres métadonnées (tels que des ID historiques) associés à ces catégories.

Deuxièmement, j'ai besoin de pouvoir associer ces catégories à d'autres catégories dans une autre branche. L'idée va être de dire : J'ai une branche A et une branche B de catégories. Si mon contenu est associé manuellement par un contributeur à une catégorie de la branche A, je sais alors fournir la catégorie de la branche B qui lui est associée dans mon flux XML. Le contributeur n'a pas à avoir connaissance de l’existence de la branche B.

Donc mon idée était de créer un champ catégorie multivaluée, en extension des catégories, pour pouvoir, en tant qu'admin, associer des catégories de la branche B à des catégories de la branche A. J'avais aussi dans l'idée de créer d'autres champs d'extension de type texte pour stocker les autres métadonnées associées aux catégories. Je n'ai pas voulu utiliser les ExtraData pour ça, car j'ai vue qu'ils ne permettent pas de créer des champs catégories.

Maintenant, en y réfléchissant, je dois pouvoir créer une extension juste pour ajouter des champs catégories aux catégories (qui seront renseignées manuellement) et créer des ExtraData pour les champs qui devront être importés via webservice, tels que les ID historiques des catégories.

Du coup, c'est juste dommage d'avoir à passer par deux mécaniques différentes pour faire ça.

Benoît Dissert - on 12/2/10 at 11:10 AM

A ta place, je ne créérais pas du tout d'extension ni même d'extradata, mais simplement un type de contenu avec :

  • un champs catégorie qui désigne la catégorie à laquelle on rattache ;
  • un champs catégories (avec un 's) qui désigne les catégories rattachées ;
  • toutes les métadonnées que tu veux attacher.

Les avantages :

  • bonne gestion de la dépendance ;
  • comme c'est un type de contenu, tu peux définir des droits de contribution, un workflow, les rechercher dans les interfaces de recherches ...
  • c'est entièrement gérable par l'Open API ;
  • l'édition des catégories ne montre pas les champs à ceux qui n'en ont pas le droit.

L'inconvénient :

  • l'édition ne se fait pas dans la même interface que les catégories.

David Koss - on 12/2/10 at 11:25 AM

Super idée Benoit ! Merci beaucoup, je pense que c'est effectivement la solution idéale pour moi.

Je vais créer un type "technique" ImportedCat que je vais pouvoir associer à mes vrais catégories et dans lequel je vais pouvoir mettre les champs correspondant aux métadonnées à importer.

Au final mon seul besoin étant de pouvoir fournir ces infos dans mes flux XML en fonction de la catégorie du contenu, je pourrais retrouver l'ImporterCat qui est rattaché à la même catégorie que mon contenu éditorial et ainsi fourni ces infos.

Merci encore !

PS : Je peux t'appeler SuperBenoit ? ;-)

Olivier Jaquemet - on 12/2/10 at 12:10 PM

SuperBenoît t'envoie la facture pour la prestation de conseil dans la journée :)

David Koss - on 12/2/10 at 12:42 PM

SuperBenoit n'est plus si "super" que ça, s'il fait ça ;-)

Benoît Dissert - on 12/2/10 at 12:56 PM

En même temps, c'est pas juste pour ce conseil que je vais facturer une journée.

Tu peux m'appeler SuperBenoît uniquement si tu mets l'accent circonflexe sur le 'i'.

J'ai oublié dans les avantages :

  • ton développement est non intrusif par rapport à d'autres (contrairement aux extensions)
Login   Home   fr en
JALIOS SA - SIREN 440 126 035