Changeset 96892 in spip-zone


Ignore:
Timestamp:
Apr 30, 2016, 3:38:48 PM (3 years ago)
Author:
eric@…
Message:

Correction du test sur le mode runtime.
Simplication du code pour la gestion de l'erreur et retour en arrière dans le cas où il n'y a pas d'erreur.
Phpdoc.

Location:
_plugins_/svp_api/trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/svp_api/trunk/http/svp.php

    r96889 r96892  
    7676 *      Objet réponse complétée (status, contenu de la ressource...).
    7777 *      La fonction peut lever une erreur sur l'état du serveur, le format de sortie, la collection et sur les critères
    78  *      de filtre à savoir catégorie et compatibilité SPIP.
     78 *      de filtre, à savoir, catégorie et compatibilité SPIP.
    7979 */
    8080function http_svp_get_collection_dist($requete, $reponse) {
     
    126126        if ($erreur) {
    127127                $contenu['erreur'] = array_merge($contenu['erreur'], $erreur);
    128                 $contenu['erreur'] = array_merge($contenu['erreur'], reponse_expliquer_erreur($contenu['erreur']));
     128                $contenu['erreur'] = reponse_expliquer_erreur($contenu['erreur']);
    129129        }
    130130
     
    138138/**
    139139 * Fait un GET sur une ressource de type plugin identifiée par son préfixe.
     140 * La requête est du type `/svp/plugin/prefixe` et renvoie l'objet plugin et les objets paquets associés.
    140141 *
    141142 * @api
     
    150151 *      Objet réponse complété (status, contenu de la ressource...).
    151152 *      La fonction peut lever une erreur sur l'état du serveur, le format de sortie, le type de ressouce et
    152  *      sur l'existante de la ressource demandée.
     153 *      sur l'existence de la ressource demandée.
    153154 */
    154155function http_svp_get_ressource_dist($requete, $reponse) {
  • _plugins_/svp_api/trunk/inc/svpapi_reponse.php

    r96889 r96892  
    197197
    198198/**
     199 * Transforme, pour un objet plugin ou paquet, les champs sérialisés, multi et liste (chaine d'éléments séparés
     200 * par une virgule) en tableau et supprime des champs de type version les 0 à gauche des numéros.
    199201 *
    200202 * @uses normaliser_multi()
    201203 * @uses denormaliser_version()
    202  * 
     204 *
    203205 * @param string $type_objet
     206 *              Type d'objet à normaliser, soit `plugin` ou `paquet`.
    204207 * @param array  $objet
    205  *
    206  * @uses normaliser_multi()
    207  * @uses denormaliser_version()
    208  *
    209  * @return array
     208 *              Tableau des champs de l'objet `plugin` ou `paquet` à normaliser.
     209 *
     210 * @return array
     211 *              Tableau des champs de l'objet `plugin` ou `paquet` normalisés.
    210212 */
    211213function normaliser_champs($type_objet, $objet) {
     
    250252
    251253/**
    252  * Construit à partir du status et du type de l'erreur le titre et l'explication de l'erreur.
    253  * Le tableau renvoyé sera concaténé avec les autres éléments du bloc d'erreur.
     254 * Complète le bloc d'erreur avec le titre et l'explication de l'erreur.
    254255 *
    255256 * @param array $erreur
    256  *
    257  * @return array
     257 *              Tableau initialisé avec les éléments de base de l'erreur (`status`, `type`, `element` et `valeur`).
     258 *
     259 * @return array
     260 *              Tableau de l'erreur complété avec le titre (index `title`) et le descriptif (index `detail`).
    258261 */
    259262function reponse_expliquer_erreur($erreur) {
     
    265268        );
    266269
    267         $explication['title'] = _T("${prefixe}_titre", $parametres);
    268         $explication['detail'] = _T("${prefixe}_message", $parametres);
    269 
    270         return $explication;
     270        $erreur['title'] = _T("${prefixe}_titre", $parametres);
     271        $erreur['detail'] = _T("${prefixe}_message", $parametres);
     272
     273        return $erreur;
    271274}
    272275
     
    277280 *
    278281 * @param Symfony\Component\HttpFoundation\Response $reponse
    279  *      Objet matérialisant la réponse telle qu'initialisée par le serveur HTTP abstrait. Cet objet sera
    280  *      complétée avant d'être retourné par la fonction.
     282 *      Objet réponse tel qu'initialisé par le serveur HTTP abstrait.
    281283 * @param array                                     $contenu
     284 *              Tableau du contenu de la réponse qui sera retourné selon le format défini.
    282285 * @param string                                    $format_reponse
    283  *
    284  * @return mixed
     286 *              Format de la réponse. Seul le format JSON est supporté.
     287 *
     288 * @return Symfony\Component\HttpFoundation\Response $reponse
     289 *      Retourne l'objet réponse dont le contenu et certains attributs du header sont mis à jour.
    285290 */
    286291function reponse_construire($reponse, $contenu, $format_reponse) {
     
    288293        $reponse->setCharset('utf-8');
    289294        $reponse->setStatusCode($contenu['erreur']['status']);
    290         if ($contenu['erreur']['status'] == 200) {
    291                 $contenu['erreur'] = array();
    292         }
    293295
    294296        if ($format_reponse == 'json') {
  • _plugins_/svp_api/trunk/inc/svpapi_requete.php

    r96889 r96892  
    66 * @package SPIP\SVPAPI\REQUETE
    77 */
    8 
    98if (!defined('_ECRIRE_INC_VERSION')) {
    109        return;
     
    1615 * Pour cela on vérifie si le serveur est en mode run-time ou pas.
    1716 * On considère qu'un serveur en mode run-time n'est pas valide pour
    18  * traiter les requêtes.
     17 * traiter les requêtes car la liste des plugins et des paquets n'est
     18 * pas complète.
    1919 *
    2020 * @param &array    $erreur
     
    3333
    3434        include_spip('inc/svp_phraser');
    35         if (!_SVP_MODE_RUNTIME) {
     35        if (_SVP_MODE_RUNTIME) {
    3636                $erreur = array(
    3737                        'status'  => 501,
  • _plugins_/svp_api/trunk/lang/svpapi_fr.php

    r96889 r96892  
    88
    99        // E
    10         'erreur_400_collection_nok_message' => 'Vous avez demandé une collection qui n\'est pas supportée par ce service. SVP ne fournit que des collections de plugins.',
     10        'erreur_400_collection_nok_message' => 'Vous avez demandé une collection qui n\'est pas supportée par ce service. SVP ne fournit que des collections de plugins (/svp/plugins) et de dépôts (/svp/depots).',
    1111        'erreur_400_collection_nok_titre'   => 'La collection« « @valeur@ » n\'est pas fournie par ce service',
    1212        'erreur_400_format_nok_message'     => 'Vous avez demandé de renvoyer les données dans un format qui n\'est pas supportée par ce service. SVP n\'utilise que les formats de sortie JSON et XML.',
     
    2020        'erreur_404_plugin_nok_message'     => 'Vous avez demandé un plugin mais le préfixe spécifié ne correspond à aucun plugin enregistré dans la base de données du serveur. Soit vous avez fait une erreur sur le préfixe, soit le plugin spécifié n\'est pas fourni par un des dépôts enregistrés sur le serveur',
    2121        'erreur_404_plugin_nok_titre'       => 'Le plugin de préfixe « @valeur@ » n\'est pas disponible sur le serveur',
    22         'erreur_501_serveur_nok_message'    => 'Vous avez essayé d\'utiliser l\'API SVP sur un serveur qui n\'est pas correctement configuré pour cela. En effet, le serveur concerné est configuré en mode « SVP runtime » ce qui est incompatible avec le service REST SVP.',
     22        'erreur_501_serveur_nok_message'    => 'Vous avez essayé d\'utiliser l\'API SVP sur un serveur qui n\'est pas correctement configuré. En effet, ce serveur est actuellement en mode « SVP runtime » incompatible avec le service REST SVP.',
    2323        'erreur_501_serveur_nok_titre'      => 'Le serveur n\'est pas correctement configuré',
    2424);
  • _plugins_/svp_api/trunk/paquet.xml

    r96889 r96892  
    22        prefix="svpapi"
    33        categorie="outil"
    4         version="0.3.2"
     4        version="0.3.3"
    55        etat="test"
    66        compatibilite="[3.0.0;3.1.*]"
Note: See TracChangeset for help on using the changeset viewer.