# 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 leEtag
.
# 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ésrevision.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
.