Thebas57 Posted November 30, 2020 Share Posted November 30, 2020 Bonjour, J'aimerais savoir si c'est possible de créer de nouvelles urls pour le webservice. Par exemple http:/monsitePresta/api/newUrlGet Et ensuite pouvoir retourner ce que je souhaite à l'appel de mon url comme par exemple un json. Merci, bonne jorunée Link to comment Share on other sites More sharing options...
Thebas57 Posted November 30, 2020 Author Share Posted November 30, 2020 (edited) 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 Edited November 30, 2020 by Thebas57 (see edit history) Link to comment Share on other sites More sharing options...
doekia Posted November 30, 2020 Share Posted November 30, 2020 Il vous suffit de déclarer une classe issue de ObjectModel et d'imiter le déclarations relatives aux webservices et leurs fonctions. Par exemple dans Product.php il y a ceci (partiel) protected $webserviceParameters = array( 'objectMethods' => array( 'add' => 'addWs', 'update' => 'updateWs' ), 'objectNodeNames' => 'products', 'fields' => array( 'id_manufacturer' => array( 'xlink_resource' => 'manufacturers' ), 'id_supplier' => array( 'xlink_resource' => 'suppliers' ), 'id_category_default' => array( 'xlink_resource' => 'categories' ), 'new' => array(), 'cache_default_attribute' => array(), 'id_default_image' => array( 'getter' => 'getCoverWs', 'setter' => 'setCoverWs', 'xlink_resource' => array( 'resourceName' => 'images', 'subResourceName' => 'products' ) ), Link to comment Share on other sites More sharing options...
jat Posted December 4, 2020 Share Posted December 4, 2020 (edited) 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 😉 Edited December 4, 2020 by jat (see edit history) Link to comment Share on other sites More sharing options...
Thebas57 Posted December 4, 2020 Author Share Posted December 4, 2020 Merci pour vos réponses, je vous tiendrais au courant de ce qui fonctionne (ou pas ) Bonne soirée Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now