new controllerApi()
Controleur de la route /api/ (qui répond en json) pour les ressources
Toutes les routes contenant /public/ ignorent la session (cookies viré par varnish,
cela permet de mettre le résultat en cache et devrait être privilégié pour les ressources publiques)
Tout ce qui renvoie une ressource (ou un oid pour du post) accepte en queryString
- format=(ref|ressource|full) ref renvoie une ref (toujours avec les _droits), full ajoute la résolution des id (auteurs, relations, groupes…)
- droits=1 pour ajouter une propriété _droits (string contenant des lettres parmi RWD)
- Source:
Methods
(inner) postRessourceExternalUpdate(context) → {*}
Demande d'update des arbres contenant une Ref
Parameters:
Name | Type | Description |
---|---|---|
context |
- Source:
Returns:
- Type
- *
DEL /api/public/:oid()
Denied (rerouting interne ressource => public si on a ni session ni token)
- Source:
DEL /api/public/:origine/:idOrigine()
Denied (rerouting interne ressource => public si on a ni session ni token)
- Source:
DEL /api/ressource/:origine/:idOrigine(:origine, :idOrigine)
Delete par id d'origine ou par rid, retourne reponseDeleted
Parameters:
Name | Type | Description |
---|---|---|
:origine |
string | ou baseId si c'était un rid |
:idOrigine |
string | ou oid si c'était un rid |
- Source:
DELETE /api/ressource/:oid(oid)
Delete ressource par oid, retourne reponseDeleted
Parameters:
Name | Type | Description |
---|---|---|
oid |
Integer |
- Source:
GET /api/autocomplete/:pattern()
Retourne une liste de filtres de recherche qui matchent pattern
Retourne un objet {filters: searchFilter[]}, chaque élément du tableau étant searchFilter ({index: string, value: string|number})
- Source:
GET /api/baseId?baseUrl=xxx()
Retourne la baseId d'une baseUrl (sesatheque ou sesalab)
- Source:
GET /api/clone/:oid()
Clone une ressource de la bibli courante en mettant l'utilisateur courant auteur (si c'est éditable, sinon laisse les auteurs)
Cumule les actions createAlias et forkAlias, sauf pour les ressources non éditables où on laisse les auteurs intact (alors que createAlias met toujours l'utilisateur courant en auteur)
Utilisé par le bouton dupliquer, retourne la ressource
La route devrait être /api/ressource/clone/:oid, mais on a déjà une route qui match 2 arguments après ressource
(ressource/:origine/:idOrigine) donc on utilise l'action en premier
- Source:
GET /api/createAlias/:baseId/:oid()
Crée un alias de ressource en mettant l'utilisateur courant en auteur (de l'alias)
(sinon il pourra pas le supprimer)
Ne deviendra une vraie ressource clonée que si on l'édite
Retourne Ref
Utiliser la méthode sesatheque-client:cloneItem
- Source:
GET /api/deconnexion()
Déconnecte l'utilisateur courant
- Source:
GET /api/forkAlias/:oid()
Fork un alias et retourne la ressource créée (qui conserve l'oid de l'alias)
- Source:
GET /api/jstree?ref=xx[&children=1](ref, childrenopt)
Récupère un arbre au format jstree (cf le plugin arbre pour un exemple d'utilisation)
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
ref |
string | Un oid ou origine/idOrigine |
|
children |
string |
<optional> |
Passer 1 pour ne récupérer que les enfants |
- Source:
GET /api/liste()
Récupère des résultats de recherche
- Source:
GET /api/liste/auteurs(pids)
Récupère les ressources d'une liste de pids, classée par pid (avec prénom & nom du pid)
Retourne reponseListesByPid
Utilisé par sesathequeClient.getListeAuteurs()
Parameters:
Name | Type | Description |
---|---|---|
pids |
string | la liste de pids séparés par des virgules |
- Source:
GET /api/liste/perso()
Cherche parmi les ressources du user courant (qui doit être connecté avant)
Retourne reponseListe
Parameters:
Type | Description |
---|---|
requeteListe |
- Source:
GET /api/public/:oid(:oid)
Retourne la ressource publique et publiée (sinon 404) d'après son oid
Retourne reponseListe
Parameters:
Name | Type | Description |
---|---|---|
:oid |
Integer |
- Source:
GET /api/public/:origine/:idOrigine(:origine, :idOrigine)
Retourne la ressource publique et publiée (sinon 404) d'après son id d'origine
Retourne reponseRessource
Parameters:
Name | Type | Description |
---|---|---|
:origine |
string | |
:idOrigine |
string |
- Source:
GET /api/public/getRid?id=xxx()
Retourne le rid d'une ressource (même privée, juste pour avoir la correspondance
origine/idOrigine => rid ou vérifier que l'id existe)
- Source:
GET /api/ressource/:oid(oid)
Retourne la ressource d'après son oid (si on a les droit de lecture dessus)
Au format reponseRessource ou Ref si on le réclame avec ?format=ref
Parameters:
Name | Type | Description |
---|---|---|
oid |
Integer |
- Source:
GET /api/ressource/:origine/:idOrigine(:origine, :idOrigine)
Retourne la ressource d'après son id d'origine (si on a les droit de lecture dessus)
Au format reponseRessource ou Ref si on le réclame avec ?format=ref
Parameters:
Name | Type | Description |
---|---|---|
:origine |
string | |
:idOrigine |
string |
- Source:
OPTIONS /api/*()
Passe au suivant pour toutes les requetes OPTIONS (traitées par le middleware cors)
- Source:
OPTIONS /api/ressource()
Pour le preflight, ajoute aux headers cors habituels le header
Access-Control-Allow-Methods:POST OPTIONS
- Source:
OPTIONS /api/ressource/addRelations()
Pour le preflight, ajoute aux headers cors habituels le header
Access-Control-Allow-Methods:POST OPTIONS
- Source:
POST /api/connexion(origine, token)
Loggue un user d'un sesalab localement, répond {success:true} ou {success:false, error:"message d'erreur"}
Dupliqué dans app/personne/controllerPersonne.js en html
Parameters:
Name | Type | Description |
---|---|---|
origine |
string | L'url de la racine du sesalab appelant (qui doit être déclaré dans le config de la sésathèque), avec préfixe http ou https |
token |
string | Le token de sesalab qui servira à récupérer le user |
- Source:
POST /api/deferPost()
Forward un post vers un sesalab (au unload on ne peut pas poster en crossdomain,
on le fait en synchrone ici qui fera suivre)
- Source:
POST /api/notifyError()
Une url pour envoyer des notifications d'erreur, à priori par un client
qui trouve des incohérences dans ce qu'on lui a envoyé
- Source:
POST /api/ressource(Les)
Create / update une ressource
Prend un objet ressource, éventuellement incomplète mais oid ou origine/idOrigine sont obligatoires
Si le titre et la catégorie sont manquants, ou que l'on passe ?merge=1 à l'url, ça merge avec la ressource
existante que l'on update, sinon on écrase (ou on créé si elle n'existait pas)
Retourne reponseRessourceOid ou Ref si on le réclame avec ?format=ref
Parameters:
Name | Type | Description |
---|---|---|
Les |
object | propriétés de la ressource |
- Source:
POST /api/ressource/addRelations(oidopt, origineopt, idOrigineopt, refopt, relations)
Ajoute des relations à une ressource (pour identifier la ressource on accepte dans le post oid ou origine+idOrigine ou ref)
Retourne reponseRessourceOid ou Ref si on le réclame avec ?format=ref
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
oid |
Integer |
<optional> |
|
origine |
string |
<optional> |
|
idOrigine |
string |
<optional> |
|
ref |
string |
<optional> |
|
relations |
Array |
- Source:
POST /api/ressource/externalUpdate()
Pour poster une Ref afin de mettre à jour tous les éventuels arbres qui l'utilisent
- Source:
POST /api/ressource/registerListener()
Permet à une autre sésathèque d'ajouter un listener ici pour être prévenu sur une modif d'une de nos ressource
- Source:
Type Definitions
reponseListe
Format de la réponse à une demande de liste
Type:
- Object
Properties:
Name | Type | Attributes | Description |
---|---|---|---|
success |
boolean | ||
error |
string |
<optional> |
Message d'erreur éventuel |
liste |
Array.<Ref> | Array.<Ressource> | Une liste de Ref (ou de Ressource si on le demande) |
- Source:
reponseListesByPid
Format de la réponse à une demande de liste
Type:
- Object
Properties:
Name | Type | Attributes | Description | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
success |
boolean | ||||||||||||||
error |
string |
<optional> |
Message d'erreur éventuel |
||||||||||||
warnings |
Array.<string> |
<optional> |
Éventuelle liste de warnings (auteurs inconnus) |
||||||||||||
pidXX |
object | Objet contenant les ressources de pidXX Properties
|
- Source:
requeteArgFilter
Format d'un filtre à passer à une requete de demande de liste
Type:
- Object
Properties:
Name | Type | Attributes | Description |
---|---|---|---|
index |
string | Le nom de l'index |
|
values |
Array |
<optional> |
Une liste de valeurs à chercher (avec des ou), remontera toutes les ressource ayant l'index si omis |
- Source:
requeteListe
Arguments à donner à une requête qui renvoie une liste de ressources
Type:
- Object
Properties:
Name | Type | Attributes | Description |
---|---|---|---|
json |
string |
<optional> |
Tous les paramètres qui suivent dans une chaîne json (GET seulement, ignoré en POST) |
filters |
Array.<requeteArgFilter> |
<optional> |
Les filtres à appliquer |
orderBy |
string |
<optional> |
Un nom d'index |
order |
string |
<optional> |
Préciser 'desc' si on veut l'ordre descendant |
start |
Integer |
<optional> |
offset |
nb |
Integer |
<optional> |
Nombre de résultats voulus (Cf settings.ressource.limites.listeNbDefault, à priori 25), |
format |
string |
<optional> |
ref|full par défaut on remonte les ressource au format Ref |
- Source: