2017-03-01 2 views
2

Je cherche un moyen avec Sylius pour afficher dynamiquement la liste des produits. Comme demander au serveur pour un ensemble spécifique de produits (recherche avec des paramètres je suppose) de manière asynchrone.Comment appeler anonymement un API avec Sylius-standard?

The doc seems to suggest l'utilisation de l'authentification oauth est obligatoire mais ce n'est pas ce que je voudrais, ou du moins pas systématiquement. Donc ma question est, puis-je et comment puis-je faire un appel api pour les parties «publiques» comme la liste des produits, mais anonymement?

Merci.

Répondre

2

De l'documentation:

Sylius a l'autorisation OAuth2 configurée. Le processus d'autorisation est une procédure standard. Autoriser comme admin et profiter de l'API!

utilisateur doit avoir le ROLE_API_ACCESS rôle afin d'accéder /api ressources

Donc, sauf si vous créez votre propre jeu public api pour afficher des informations produits ce n'est pas possible avec la base Sylius api.

+0

Avez-vous travaillé avec? Je veux dire avec l'API. Avez-vous trouvé un fichier de configuration associé à cela? Je n'ai rien trouvé dans le document sur l'extension/dépassement du comportement actuel de l'API, n'est-ce pas? Je suppose que je peux ajouter une logique de type proxy mais il semble laid, difficile à maintenir et pas très orienté perfomance (ce qui est important pour le référencement). – rmNyro

+0

Recherchez [SyliusApiBundle] (https://packagist.org/packages/sylius/api-bundle) à l'intérieur des fournisseurs, vous trouverez des spécifications api et peut-être vous pouvez l'utiliser comme exemple pour créer votre propre API publique. Je n'ai pas encore travaillé avec, je suis en train de le tester sur une pile de dockers. Bon travail –

+0

Recherchez le SampleToken dans les tables liées à l'API et copiez-le et nommez-le. Ceci est un exemple d'un jeton d'API qui ne peut pas expirer et qui peut accéder aux routes publiques ... – Kjell

1

Vous pouvez utiliser le SyliusShopApiPlugin, actuellement en développement. Avec elle, vous pouvez faire des appels d'API anonymes et publiques, par exemple:

/shop-api/taxons/t-shirts/products/?channel=US_WEB 

pour obtenir tous les produits de la catégorie T-shirts.

Je n'ai pas encore trouvé de documentation, mais vous pouvez vérifier les tests, par ex. https://github.com/Sylius/SyliusShopApiPlugin/blob/master/tests/Controller/ShowProductCatalogApiTest.php pour obtenir plus d'exemples.

+0

Merci pour votre réponse intéressante. Cela étant dit, cette api semble très légère. Je ne comprends pas pourquoi ils n'ont pas fait quelque chose comme un "générateur de recherche" dans lequel vous pouvez spécifier ce que vous laissez votre utilisateur à rechercher (ne me parlez pas de leur horrible logique de grille s'il vous plaît ...) , ou fournir une interface simple pour construire une requête ou autre chose ... En outre, en utilisant la recherche élastique et être obligé de repeupler la base de données après chaque mise à jour dans le sylius n'est pas viable IMO. Je ne veux pas commencer une discussion et ce n'est même pas lié au sujet initial. Juste laisser ma frustration s'exprimer. ^^ – rmNyro