Newer
Older
# 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.
[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,
```
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`.