Download the PHP package thomas-claireau/bilemo without Composer
On this page you can find all versions of the php package thomas-claireau/bilemo. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download thomas-claireau/bilemo
More information about thomas-claireau/bilemo
Files in thomas-claireau/bilemo
Informations about the package bilemo
[PHP] - Bilemo - Créez un web service exposant une API
Installation du projet
Via Composer :
Dans le cas où vous téléchargez directement le projet (ou encore avec git clone
), effectuez un composer install
à la racine du projet.
Installez ensuite les dépendances front du projet (pour lancer l'interface d'api-platform). Placez-vous à la racine du projet :
Remarque
Accès base de données
Le projet est livré sur Packagist sans base de données. Cela signifie qu'il faut que vous ajoutiez votre configuration, dans le fichier .env
, dans la partie DATABASE_URL
.
Injection SQL et structure du projet
Pour obtenir une structure similaire à mon projet au niveau de la base de données, je vous joins aussi dans le dossier ~src/Migrations/
les versions de migrations que j'ai utilisées. Vous pouvez donc recréer la base de données en effectuant la commande suivante, à la racine du projet :
Après avoir créer votre base de données, vous pouvez également injecter un jeu de données en effectuant la commande suivante :
Lancer le projet
A la racine du projet :
- Pour lancer le serveur de développement, effectuez un
npm run dev-server
. - Pour lancer le serveur de symfony, effectuez un
php bin/console server:run
.
Authentification
A ce niveau la, vos requêtes vers l'api seront refusées car vous ne serez pas authentifié au sein du projet. Suivez donc les étapes suivantes :
1. Générer les clés SSH pour le Json Web Token (JWT)
2. Récupérez ou créez vous un compte
Dans les fixtures du projet (src/DataFixtures
), ajoutez votre propre compte.
Vous pouvez aussi utiliser le compte suivant :
- email : [email protected]
- password : root
3. Générez un JWT
Remplacez YOUR_EMAIL par votre email (par ex. [email protected]) et YOUR_PASSWORD par votre mot de passe (par ex. root)
Vous devriez obtenir le résultat suivant :
4. Utilisez le JWT pour effectuer des opérations
Récupérez le token généré pour commencer à utiliser l'API de Bilemo.
Pour connaitre tous les entrypoints disponibles, allez voir la démo du projet 👋
Contexte
BileMo est une entreprise offrant toute une sélection de téléphones mobiles haut de gamme.
Vous êtes en charge du développement de la vitrine de téléphones mobiles de l’entreprise BileMo. Le business modèle de BileMo n’est pas de vendre directement ses produits sur le site web, mais de fournir à toutes les plateformes qui le souhaitent l’accès au catalogue via une API (Application Programming Interface). Il s’agit donc de vente exclusivement en B2B (business to business).
Il va donc falloir que vous exposiez un certain nombre d’API pour que les applications des autres plateformes web puissent effectuer des opérations.
Besoin client
Le premier client a enfin signé un contrat de partenariat avec BileMo ! C’est le branle-bas de combat pour répondre aux besoins de ce premier client qui va permettre de mettre en place l’ensemble des API et les éprouver tout de suite.
Après une réunion dense avec le client, il a été identifié un certain nombre d’informations. Il doit être possible de :
consulter la liste des produits BileMo ; consulter les détails d’un produit BileMo ; consulter la liste des utilisateurs inscrits liés à un client sur le site web ; consulter le détail d’un utilisateur inscrit lié à un client ; ajouter un nouvel utilisateur lié à un client ; supprimer un utilisateur ajouté par un client. Seuls les clients référencés peuvent accéder aux API. Les clients de l’API doivent être authentifiés via Oauth ou JWT.
Vous avez le choix de mettre en place un serveur Oauth et d’y faire appel (en utilisant le FOSOAuthServerBundle) ou d’utiliser Facebook, Google ou LinkedIn. Si vous décidez d’utiliser JWT, il vous faudra vérifier la validité du token ; l’usage d’une librairie est autorisée.
Présentation des données
Le premier partenaire de BileMo est très exigeant : il requiert que vous exposiez vos données en suivant les règles des niveaux 1, 2 et 3 du modèle de Richardson. Il a demandé à ce que vous serviez les données en JSON. Si possible, le client souhaite que les réponses soient mises en cache afin d’optimiser les performances des requêtes en direction de l’API.
✔️ Projet validé
All versions of bilemo with dependencies
ext-ctype Version *
ext-iconv Version *
api-platform/api-pack Version ^1.2
cocur/slugify Version 3.1
friendsofsymfony/http-cache-bundle Version ^2.8
friendsofsymfony/rest-bundle Version 2.5.0
fzaninotto/faker Version ^1.9
guzzlehttp/psr7 Version ^1.6
jms/serializer-bundle Version ^3.5
knplabs/knp-paginator-bundle Version 4.1.1
lexik/jwt-authentication-bundle Version ^2.6
liip/imagine-bundle Version 2.0.0
php-http/guzzle6-adapter Version ^2.0
sensio/framework-extra-bundle Version ^5.1
symfony/apache-pack Version ^1.0
symfony/asset Version 4.2.*
symfony/cache Version 4.2.12
symfony/console Version 4.2.*
symfony/dotenv Version 4.2.*
symfony/expression-language Version 4.2.*
symfony/flex Version ^1.3.1
symfony/form Version 4.2.*
symfony/framework-bundle Version 4.2.*
symfony/http-foundation Version 4.2.12
symfony/monolog-bundle Version ^3.1
symfony/orm-pack Version *
symfony/process Version 4.2.*
symfony/security-bundle Version 4.2.*
symfony/serializer-pack Version *
symfony/swiftmailer-bundle Version ^3.1
symfony/translation Version 4.2.*
symfony/twig-bundle Version 4.2.*
symfony/validator Version 4.2.*
symfony/web-link Version 4.2.*
symfony/webpack-encore-bundle Version ^1.7
symfony/yaml Version 4.2.*
vich/uploader-bundle Version 1.11.0