Para est un serveur / framework backend multitendant évolutif pour la persistance et la récupération des objets. Il vous aide à créer et à prototyper les applications plus rapidement en prenant soin des opérations backend. Cela peut faire partie de votre application basée sur JVM ou il peut être déployé en tant que serveur API multitinnant autonome avec plusieurs applications et clients qui s'y connectent.
Le nom "Pára" signifie "vapeur" en bulgare. Et tout comme la vapeur est utilisée pour alimenter les choses, vous pouvez utiliser PARA pour alimenter votre backend d'application mobile ou Web.
Voir comment ParA se compare à d'autres frameworks backend open source.
Ce projet est entièrement financé et soutenu par Erudika - une entreprise indépendante et amorçante.
DAO nativement) + ---------------------------------------------------------- +
| ____ ___ _ ____ ___ _ |
| / __ / __` / ___ / __` / |
| / / _ / / / _ / / / / / _ / / |
| / .___ / __, _ / _ / __, _ / + ------------- +
| / _ / | Persistance |
+ ------------------- + + ----------------- + + ------------- +
| API REST | | Recherche | --- | Cache |
+ --------- + --------- + - + -------- + -------- + --- + ------ + ------ +
| | |
+ --------- + --------- + + -------- + -------- + + ------ + ------ +
| Demandes signées | | Index de recherche | | Magasin de données |
| et les jetons JWT | | (Tout) | | (Tout) |
+ ---- + --------- ^ ---- + + ----------------- + + ------------- +
| |
+ ---- V --------- + --------------------------------------- +
| Clients: JavaScript, PHP, Java, C #, Android, iOS, et al. |
+ ---------------------------------------------------------- +
Nous offrons l'hébergement et le support premium sur Paraio.com où vous pouvez essayer Para en ligne avec un compte de développeur gratuit. Parcourez et gérez vos utilisateurs et objets, faites des sauvegardes et modifiez les autorisations en quelques clics dans la console Web. En mettant à niveau vers un compte premium, vous pourrez faire évoluer vos projets de haut en bas en quelques secondes et gérer plusieurs applications.
application.conf dans le même répertoire que le package JAR.java -jar -Dconfig.file=./application.conf para-*.jarnpm install -g para-cli # run setup and set endpoint to either 'http://localhost:8080' or 'https://paraio.com'
# the keys for the root app are inside application.conf
$ para-cli setup
$ para-cli new-app "myapp" --name "My App"
Alternativement, vous pouvez utiliser la console Web Para pour gérer les données, ou intégrer directement Para dans votre projet avec l'un des clients API ci-dessous.
Les images docker taguées pour para sont situées à erudikaltd/para sur Docker Hub. Il est fortement recommandé de retirer uniquement des images comme :1.45.1 ou :latest_stable car la :latest balise peut être cassée ou instable. Tout d'abord, créez un fichier application.conf et un dossier data et démarrez le conteneur Para:
$ touch application.conf && mkdir data
$ docker run -ti -p 8080:8080 --rm -v $(pwd)/data:/para/data
-v $(pwd)/application.conf:/para/application.conf
-e JAVA_OPTS="-Dconfig.file=/para/application.conf" erudikaltd/para:latest_stable
Variables d'environnement
JAVA_OPTS - Propriétés du système Java, par exemple -Dpara.port=8000 BOOT_SLEEP - Délai de démarrage, en quelques secondes
Plugins
Pour utiliser des plugins, créez un nouveau Dockerfile-plugins qui fait une construction en plusieurs étapes comme tel:
# change X.Y.Z to the version you want to use
FROM erudikaltd/para:v1.XY.Z-base AS base
FROM erudikaltd/para-search-lucene:1.XY.Z AS search
FROM erudikaltd/para-dao-mongodb:1.XY.Z AS dao
FROM base AS final
COPY --from=search /para/lib/*.jar /para/lib
COPY --from=dao /para/lib/*.jar /para/lib
Ensuite, exécutez simplement $ docker build -f Dockerfile-plugins -t para-mongo .
Para peut être compilé avec JDK 8+:
Pour le compiler, vous aurez besoin de maven. Une fois que vous l'avez, il suffit de cloner et de construire:
$ git clone https://github.com/erudika/para.git && cd para
$ mvn install -DskipTests=true Pour générer le $ mvn package et il sera dans ./para-jar/target/para-xyz-SNAPSHOT.jar . Deux fichiers JAR seront générés au total - celui de la graisse est un peu plus grand.
Pour construire le package de base sans plugins (exclut para-dao-sql et para-search-lucene ), exécutez:
$ cd para-jar && mvn -Pbase package
Pour exécuter une instance locale de PARA pour le développement, utilisez:
$ mvn -Dconfig.file=./application.conf spring-boot:runVous pouvez exécuter Para en tant que serveur autonome en téléchargeant le pot exécutable puis:
$ java -jar para-X.Y.Z.jarVous pouvez parcourir vos objets via la console Web Para console.paraio.org. Changez simplement le point de terminaison de l'API pour être votre serveur local et connectez vos clés d'accès. L'interface d'administration est uniquement côté client et votre clé secrète n'est jamais envoyée sur le réseau. Au lieu de cela, un jeton d'accès JWT est généré localement et envoyé au serveur sur chaque demande.
Alternativement, vous pouvez créer un fichier de guerre et le déployer dans votre conteneur de servlet préféré:
$ cd para-war && mvn package
Vous pouvez également intégrer PARA avec votre projet en l'ajoutant comme dépendance. Para est hébergé sur Maven Central. Voici l'extrait Maven à inclure dans votre pom.xml :
< dependency >
< groupId >com.erudika</ groupId >
< artifactId >para-server</ artifactId >
< version >{see_green_version_badge_above}</ version >
</ dependency >Pour créer des applications légères uniquement en matière de clients, incluez uniquement le module client:
< dependency >
< groupId >com.erudika</ groupId >
< artifactId >para-client</ artifactId >
< version >{see_green_version_badge_above}</ version >
</ dependency >$ npm install -g para-cliUtilisez ces bibliothèques clients pour intégrer rapidement PARA dans votre projet:
Utilisez ces implémentations DAO pour se connecter à différentes bases de données:
AWSDynamoDAO (inclus dans para-server )H2DAO est le DAO par défaut et il fait partie du plugin SQL (emballé avec le fichier JAR) L'interface Search est implémentée par:
L'interface Cache est implémentée par:
para-server ) L'interface Queue est implémentée par:
AWSQueueLocalQueue pour les déploiements à hôtes uniques et le développement local 2.0 - Migration vers Quarkus, Java 13+ seulement, image nativeparapara sur Stack Overflow git checkout -b my-new-feature )git commit -am 'Added a new feature' )git push origin my-new-feature )Veuillez essayer de respecter le style de code de ce projet. Pour vérifier votre code, exécutez-le via le vérificateur de style:
mvn validatePour plus d'informations, voir contribution.md
Apache 2.0