# Smart Element: révision

Cette sous-collection décrit les révisions des Smart Elements.

# URL

L'URL d'accès est /api/v2/smart-elements/<docid>/revisions/

# Méthodes

La sous-collection revisions implémente les éléments suivants:

  • Collection
Action URL Action effectuée
GET /api/v2/smart-elements/<docid>/revisions/ Liste des URLs de révisions
POST /api/v2/smart-elements/<docid>/revisions/ N/A
PUT /api/v2/smart-elements/<docid>/revisions/ N/A
DELETE /api/v2/smart-elements/<docid>/revisions/ N/A
  • Ressource
Action URL Action effectuée
GET /api/v2/smart-elements/<docid>/revisions/<revisionNumber> Récupère une révision
POST /api/v2/smart-elements/<docid>/revisions/<revisionNumber> N/A
PUT /api/v2/smart-elements/<docid>/revisions/<revisionNumber> N/A
DELETE /api/v2/smart-elements/<docid>/revisions/<revisionNumber> N/A

# Consultation de la liste des révisions d'un Smart Element

# URL

GET /api/v2/smart-elements/<docid>/revisions/

Récupération de la liste des révisions du Smart Element docid.
L'identifiant du Smart Element peut être son nom logique ou son identifiant numérique.

GET /api/v2/smart-structures/<family>/smart-elements/<docid>/revisions/ Récupération de la liste des révisions de la dernière révision d'un Smart Element de la Smart Structure family ayant l'identifiant docid.

N.B.

La différence entre les collections smart-structures et smart-elements est que pour la collection /api/v2/smart-structures/<family>/smart-elements/<docid>/revisions/ l'identifiant doit être dans la Smart Structure indiquée pour être retourné, sinon une erreur 404 (ressource non trouvée ) est retournée.

N.B.

Les révisions d'un Smart Element supprimé peuvent être récupérés via l'url: GET /api/v2/trash/<docid>/revisions/.

# Contenu

Le contenu de la requête est vide.

# Structure de retour

Le retour est une donnée JSON.

# En cas de réussite

La partie data contient les champs suivants:

  • requestParameters: contient un résumé des paramètres de la requête en cours (pagination et orderBy),
  • uri: URI d'accès à la collection,
  • revisions: un tableau de révision (sous la même forme que les Smart Elements unitaires).
    Chaque révision est un objet contenant les entrées suivantes:
  • properties: liste des propriétés de la révision,
  • attributes: liste des Smart Field du Smart Element révisé (facultatif),
  • uri: URI d'accès au Smart Element.

Exemple:

{
  "success": true,
  "data": {
    "requestParameters": {
      "slice": 10,
      "offset": 0,
      "length": 1,
      "orderBy": "revision desc, id desc"
    },
    "uri": "/api/v2/smart-elements/DEVBILL/revisions/",
    "revisions": [
      {
        "properties": {
          "id": 97507,
          "title": "Bill",
          "initid": 97507,
          "icon": "/api/v2/images/assets/sizes/24x24c/devbill.png",
          "name": "DEVBILL",
          "revision": 0,
          "status": "alive"
        },
        "uri": "/api/v2/smart-structures/DEVBILL.json"
      }
    ]
  },
  "messages": []
}

# En cas d'échec

Les raisons d'échec spécifiques à cette requête sont:

Raison Status HTTP Code d'erreur
Smart Element non trouvé 404 CRUD0200
Smart Element supprimé 404 CRUD0219

# Cache

Dans le cadre du cache, le Etag est calculé à l'aide des éléments suivants:

  • identifiant de la dernière révision du Smart Element
  • date de dernière modification du Smart Element,
  • identifiant de l'utilisateur,
  • identifiant des droits portés sur le Smart Element (vecteur de droits),
  • langue sélectionnée.
    Tous ces éléments sont concaténés et ensuite le md4 de cette concaténation À partir de la version 2021.01 constitue le Etag.

# Consultation d'une révision d'un Smart Element

# URL

GET /api/v2/smart-elements/<docid>/revisions/<revisionNumber>

Récupération de la révision revisionNumber du Smart Element docid.
L'extension .json peut être ajoutée pour expliciter le format de sortie.

Exemple: GET /api/v2/smart-elements/DEVBILL/revisions/0.json

L'identifiant du Smart Element peut être son nom logique ou son identifiant numérique.

GET /api/v2/smart-structures/<family>/smart-elements/<docid>/revisions/<revisionNumber>

Récupération de la révision revisionNumber d'un Smart Element de la Smart Structure family ayant l'identifiant docid.

N.B.

La différence entre les collections smart-structures et smart-elements est que pour la collection /api/v2/smart-structures/<family>/smart-elements/<docid>/revisions/<revisionNumber> l'identifiant doit être dans la Smart Structure indiquée pour être retourné, sinon une erreur 404 (ressource non trouvé) est retournée.

N.B.

La révision d'un Smart Element supprimé peut être récupérée via l'URL: GET /api/v2/trash/<docid>/revisions/<revisionNumber>

# Contenu

Le contenu de la requête est vide.

# Structure de retour

Le retour est une donnée JSON.

# En cas de réussite

La partie data contient les champs suivants:

  • revision.uri: URI d'accès à la ressource modifiée,
  • revision.properties: liste des valeurs des propriétés
  • revision.attributes: liste des valeurs des Smart Fields.

Les Smart Fields en visibilité I ne sont pas retournés.
Exemple:

{
  "success": true,
  "data": {
    "revision": {
      "properties": {
        "id": 97507,
        "title": "Bill",
        "initid": 97507,
        "icon": "/api/v2/images/assets/sizes/24x24c/devbill.png",
        "name": "DEVBILL",
        "revision": 0,
        "status": "alive"
      },
      "uri": "/api/v2/smart-structures/DEVBILL.json"
    }
  },
  "messages": []
}

# En cas d'échec

Les raisons d'échec spécifiques à cette requête sont:

Raison Status HTTP Code d'erreur
Smart Element ou révision non trouvé 404 ROUTES0100
Smart Element supprimé 404 ROUTES0102

# Résultat partiel

Le Smart Element peut être retourné avec plus ou moins d'informations.

  • GET /api/v2/smart-elements/1234/revisions/0.json?fields=document.properties
  • GET /api/v2/smart-elements/1234/revisions/0.json?fields=document.properties.status,document.attributes
  • GET /api/v2/smart-elements/1234/revisions/0.json?fields=document.properties.title,document.attributes.my_example
  • GET /api/v2/smart-elements/1234/revisions/0.json?fields=document.properties.title,document.attributes,family.structure

Par défaut: fields=document.properties,document.attributes

Fields Signification Remarques
document.properties Récupère l'ensemble des propriétés visibles "state","id", "icon", "initid", "name", "revision"
document.properties.<prop> Récupère la propriété indiquée
document.attributes Récupère les valeurs et les valeurs affichables des Smart Fields
document.attributes.<id> Récupère la valeur d'un Smart Field particulier
-document.family.structure Récupère la structure de la Smart Structure

# Cache

Dans le cadre du cache, le Etag est calculé à l'aide des éléments suivants:

  • id de la révision,
  • date de dernière modification, -identifiant de l'utilisateur,
  • identifiant des droits portés sur le Smart Element(vecteur de droits),
  • langue sélectionnée

Tous ces éléments sont concaténés et ensuite le md4 de cette concaténation constitue le Etag.