Le 30/11/2020 à 11:53 AM, Thebas57 a dit :J'ai déjà vu cette doc mais j'ai l'impression qu'on utilise des routes déjà existances 😕
Alors que moi je veux en créer de nouvelles
Voici un exemple qui fonctionne pour moi:
Créez d'abord une override dans le dossier /override/classes/webservice appelé WebserviceRequest.php. Nous allons créer un overload de la fonction getResources pour ajouter notre fonction:
class WebserviceRequest extends WebserviceRequestCore { public static function getResources() { $resources = parent::getResources(); $resources['jatdev'] = array('description' => 'Example of product list','class' => 'jatdev'); return $resources; } }
Vous le trouverez dans le back-end (Paramètres avancés -> webservice). Vous en trouverez la liste à la dernière ligne, et nous pouvons nous gérer les autorisations. (Important : vider le cache 🧹)
Ensuite, nous allons créer notre classe de jatdev. Dans /override/classes
class jatdev extends ObjectModel { public static $definition = array( 'table' => 'product', 'primary' => 'id_product', 'fields' => array(// ) ); protected $webserviceParameters = array( 'objectNodeNames' => 'jatdev', 'fields' => array( 'reference' => array( 'getter' => 'getProductReference' ) ) ); public function __construct($params = null) { parent::__construct(); if (isset($params) && strlen($params) > 0) { $this->id = $params; } } public function getProductReference() { $product = new Product($this->id); $reference = $product->reference; return $reference; } }
Dans cette classe, vous pouvez développer avec les informations et les tables dont vous avez besoin 😊.
Vous pouvez accéder à la liste des produits ou à la liste donnée par l'api :
http://www.url-projet.devel/api/jatdev/?ws_key=TOKEN_ID et aussi http://www.url-projet.devel/api/jatdev/36051/?ws_key=TOKEN_ID (36051 = id dans ma liste)
@Thebas57 Dites-nous si ça fonctionne 😉