-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Hi and welcome on this wiki!
On this page, I will describe my folders structure and some important classes. If you want information about the different systems in this project, check the right column !
This package contains every configuration related classes. Here are some:
-
AppConfig
: Holds environment dependent properties (see Here ) -
RestAPI
: Configure the root URI of the API. General JAX-RS configuration is done in this class. -
exception handlers: They handle exceptions and return a JSON
APIError
instead of the default HTML page. - request filters: They do some process before or after executing every endpoint method (getting locale, adding default headers...)
This package contains all the class defining the endpoints of the application.
It also contains some pretty useful utils classes:
-
APIUtils
: contains some utility methods used in the API (return an error, create a response with pagination headers...) -
CurrentRequest
: Holds useful information fetched by RequestFilters (authenticated user, used locale...) -
APIError
: An object that encapsulate exceptions to parse them in a nice looking JSON.
This package contains every exceptions that I created. There is often an exception handler associated with these exceptions.
This package contains every entities, DTOs and their associated mappers. You can see Mapstruct documentation to know how the mapping is done.
There is also some utils or mother classes:
-
LocalizedString
: Allow to persist localized strings in DB. Format: {"fr": "Texte français", "en: "English text"} -
GenericEntity
andSingleIDEntity
: Mother classes of every entities (holds creation date, update date...) -
GenericDTO
andSingleIDDTO
: Mother classes of every DTOs. -
/mekor/rest/quickstart/model/mappers/utils
: Used to ease the mappers writing.
This package contains every repositories. They allow easy writing of DB management methods. I'm using the Deltaspike Data Module and QueryDSL.
The GenericRepository
class holds some default behavior for every repositories.
This package contains every business related classes.
This package contains the authentication system and the security system. More information Here
Some utility classes. Here are some:
-
GsonUtils
: Class for easy JSON parsing -
GsonIgnore
: Annotation for ignoring a field when using GsonUtils -
LocaleUtils
: Class for parsing locale and storing supported locales and default locale. -
ApplicationPage
: Holds front-end application URIs (for Notification or email building for exemple)
Bonjour et bienvenu sur ce Wiki !
Sur cette page, je détaille la structure de dossiers de mon projet et quelques classes importantes. Si vous voulez plus d'informations sur les différents systèmes qui composent ce projet, faites un tour dans la colonne de droite !
Ce package contient toutes les classes de configuration. En voila quelques-unes:
-
AppConfig
: Contient les propriété dépendantes de l'environnement (Voir Ici ) -
RestAPI
: Définit l'URI racine de l'API. La configuration de JAX-RS se fait également dans cette classe. -
exception handlers: Il gèrent les exceptions et renvoient un joli
APIError
en JSON au lieu de la page HTML par défaut. - request filters: Il exécutent du code avant et après mes méthodes de l'API (récupérer la locale, ajouter les header par défaut...)
Ce package contient toutes les classes de l'API.
Il contient également quelques classes utils :
-
APIUtils
: Contient des méthodes utils utilisées dans l'API (retourner une erreur, créer une réponse en ajoutant les headers de pagination...) -
CurrentRequest
: Contient des informations utiles récupérées par les RequestFilters (utilisateur authentifié, locale de la requête...) -
APIError
: Un objet qui encapsule les exceptions pour les parser en un joli JSON
Ce package contient toutes les exceptions que j'ai crée. Souvent, un ExceptionHandler est associé à ces exceptions.
Ce packge contient toutes les entités, DTOs et leur Mappers associés. Voici la Documentation Mapstruct pour savoir comment le mapping est effectué.
Il contient également quelques classes utils et classes mères :
-
LocalizedString
: Permet de persister des chaines de caractères localisées en base de données. Format: {"fr": "Texte français", "en: "English text"} -
GenericEntity
andSingleIDEntity
: Classes mères de toutes les entités (stocke la date dé création, date de mise à jour...) -
GenericDTO
andSingleIDDTO
: Classes mères de toutes les DTOs -
/mekor/rest/quickstart/model/mappers/utils
: Utilisées pour faciliter l'écriture des mappers.
Ce package contient touts les repositories. Il permettent d'écrire facilement des méthodes de gestion de la DB. J'utilise le Data Module de Deltaspike et QueryDSL.
La classe GenericRepository
contient le comportement par défaut des repositories.
Ce package contient la totalité des classes métiers
Ce package contient le système d'authentification et de sécurité. Plus d'information Ici
Quelques classes utils:
-
GsonUtils
: Classe pour simplifier le parsing JSON -
GsonIgnore
: Annotation pour ignorer un attribut lorsqu'on utilise GsonUtils -
LocaleUtils
: Classe pour parser les locales et stocker les locales supportées et la locale par défaut -
ApplicationPage
: Contient les URIs de l'application Front-End (pour la construction des notifications ou des email par exemple)