Thebas57 Posted November 30, 2020 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 Share this post Link to post Share on other sites More sharing options...
ndiaga Posted November 30, 2020 Posted November 30, 2020 Bonjour, Voici la documentation pour le WebService , jetez un coup d'œil pour comprendre les bases: https://devdocs.prestashop.com/1.7/webservice/ Share this post Link to post Share on other sites More sharing options...
Thebas57 Posted November 30, 2020 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) Share this post Link to post Share on other sites More sharing options...
doekia Posted November 30, 2020 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' ) ), Share this post Link to post Share on other sites More sharing options...
jat Posted December 4, 2020 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) Share this post Link to post Share on other sites More sharing options...
Thebas57 Posted December 4, 2020 Posted December 4, 2020 Merci pour vos réponses, je vous tiendrais au courant de ce qui fonctionne (ou pas ) Bonne soirée Share this post Link to post 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