# BACK ## Solution ERP SIL 2021-2022 Ce dépôt contient le composant BACK pour la version SIL du projet ERP de M2 2021-2022. Ce projet est soumis au [contrat de licence CeCILL-B](https://cecill.info/licences/Licence_CeCILL-B_V1-fr.html). ### Qu'est-ce que c'est ? BACK est le composant gérant la documentation comptable et étant également responsable de la gestion des stocks pour les articles à vendre. L'application fournit également aux autres services les informations sur les produits disponibles tels que les prix de chaque article. ### Documentation [Accueil documentation](https://erp-sil.pages.unistra.fr/back/) L'API REST est documentée à travers un document OpenAPI qui peut être consulté [ici](https://erp-sil.pages.unistra.fr/back/openapi/index.html). La documentation Java (Javadoc) du projet est généré automatiquement par le système d'intégration continue (CI) pour chaque révision de la branche `master` et peut être consultée [ici](https://erp-sil.pages.unistra.fr/back/javadoc/index.html) (en anglais). ### Exécution BACK est une application Web [Java Spring](https://spring.io/) utilisant le [système Gradle](https://gradle.org/). Gradle permet d'essayer rapidement l'application en lançant un serveur Web de test [Apache TomCat](https://tomcat.apache.org/) hébergeant le programme. Il permet également de la déployer rapidement sous la forme d'une archive WAR pouvant être installée sur un serveur de production Apache TomCat ou [Eclipse Glassfish](https://glassfish.org/). Il est conseillé d'utiliser un IDE Java pour exécuter et déployer l'application. * [JetBrains IntelliJ IDEA](https://www.jetbrains.com/idea/) (propriétaire, nécessite une licence) * [Apache NetBeans](https://netbeans.apache.org/) (gratuit et *open-source*) * [Eclipse IDE for Java Developers](https://www.eclipse.org/downloads/packages/) (grauit et *open-source*) #### Préparation Assurez-vous que votre machine possède un kit de développement Java (JDK) version **8 ou ultérieur**. Le JDK complet est requis pour compiler l'application. Le fichier WAR peut être déployé sur une machine ne possédant que la JRE. Afin que l'application fonctionne, vous devez configurer une clé d'authentification pour l'API de l'application. Dans `src/main/resources`, créez un nouveau fichier `apikey.properties` contenant : ``` api.key=MyApiKey ``` #### Compilation et exécution Vous pouvez compiler et lancer le projet en utilisant la commande suivante sur un système UNIX ou UNIX-like : ``` ./gradlew bootRun ``` Sur Microsoft Windows, utilisez : ``` .\gradlew bootRun ``` Quand l'application tourne, vous pouvez y accéder à travers l'adresse URL [http://127.0.0.1:8080/](http://127.0.0.1:8080/). Pour l'arrêter, vous devriez pouvoir utiliser le raccourci clavier CTRL+C. Sinon, lancez un autre terminal dans le dossier du projet et exécutez : ``` ./gradlew stop ``` ou, sur Microsoft Windows, ``` .\gradlew stop ``` ### Appel de l'API Vous pouvez trouver la documentation [ici](https://erp-sil.pages.unistra.fr/back/openapi/index.html). Utilisez [Postman](https://www.postman.com/) ou [Advanced REST Client](https://install.advancedrestclient.com/install) pour l'appeler l'API REST. Tous les appels vers l'API doivent posséder la clé d'authentification configurée dans le fichier `apikey.properties` de l'application. Elle doit être spécifiée dans l'en-tête HTTP `apikey`.