Dropwizard – organiser votre projet, comprendre la terminologie, etc.

J’apprends à utiliser Dropwizard. J’ai pu suivre le guide de démarrage rapide et exécuter des API REST de base.

Dans cette documentation , vous trouverez une section intitulée “Organiser votre projet”.

Il recommande d’organiser votre projet en plusieurs parties: projet-api, projet-client, projet-service.

Voici mes questions / questions:

  1. Veuillez expliquer, en termes généraux, la différence entre «api», «service» et «client».

  2. Existe-t-il un exemple qui suit ssortingctement la convention ci-dessus en utilisant dropwizard?

  3. “… client-projet doit utiliser ces classes et un client HTTP pour implémenter un client à part entière pour votre service” — puisque “projet-service” aura les API REST, alors pourquoi devons-nous utiliser HTTP Client ?

Merci!

  1. Dropwizard vous recommande de suivre la structure de projet ci-dessous:

    {nom_projet} (parent avec les modules suivants)

    • {nom_projet} -api: devrait avoir tous les objects de valeur / POJO que vous utilisez dans votre projet.
    • {nom_projet} -client: doit contenir le code client utilisé pour obtenir les données du service de repos externe. Peut être exclu, si vous n’en avez pas.
    • {nom_projet} -service: contient le rest (service, configuration, ressources, dao … etc).
  2. Vous trouverez peut-être cet exemple utile, même si la partie cliente est vide.

  3. Comme mentionné dans la courte description pour le client au point 1, si votre projet a un appel à des services de repos externes, le code client associé (HTTP) doit être inséré dans le module client. Sinon, excluez le module lui-même.

1) api – comme par le nom, c’est l’interface / contrat qui définit comme représentations (Pojo -Json / Xml) dans le projet. Ces modèles définissent vos contrats API, qui peuvent être partagés avec différents projets utilisant votre API.

2) service – logique commerciale réelle et persistance. Les représentations ne doivent pas nécessairement être les mêmes que vos objects Entity (objects de domaine). Cela divise votre domaine et vos représentations de manière plus claire. La logique de domaine ne sera plus couplée à votre représentation. Bien que cela puisse entraîner une duplication significative en termes de structure d’object.

Dépendance du projet – dépend de “api”, “client”

3) client – Un wrapper de client HTTP pour appeler d’autres services Web via des appels HTTP à l’aide de HttpClient ou de Jersey Client. Rédiger des tests (utilisateur final) pour les contrats.

Dépendance du projet – dépend de “api”

J’espère que cela t’aides.