Remarque: Je voudrais commencer en indiquant que la nature de cette requête est assez générale car j'explore les façons d'implémenter quelque chose plutôt que d'essayer de résoudre un problème spécifique. Problème de codage ou problèmeMasquage de plusieurs API derrière une API commune pour un utilisateur final
Je travaille sur un projet de middleware qui se situe entre un ensemble de producteurs (d'informations) et un seul consommateur.
Voici les exigences.
1) Les producteurs génèrent tous des données pour le consommateur mais ont leurs propres interfaces API. 2) Le consommateur ne veut pas vraiment coder pour l'API de chaque producteur et a donc demandé qu'une couche de transparence soit créée pour que tous les producteurs soient abstraits et qu'il ne dispose que d'une seule interface API pour le codage.
3) Plus de producteurs seront ajoutés de temps en temps.
4) Les informations que chaque producteur envoie seront, par nature, de type similaire (par exemple, des fonds d'actions - qui contiennent un ensemble défini d'attributs communs). Cependant, la représentation dans l'API de chaque producteur est à leur discrétion.
5) Il doit y avoir une communication sécurisée entre le consommateur et chaque producteur où le producteur vérifie le consommateur avant de fournir les données.
Je suis sûr que vous pourriez avoir des questions sur ces exigences ou demander plus de précisions, alors s'il vous plaît faites le moi savoir et je vais mettre à jour la question.
Cependant, voici mes questions et esperait quelques-uns des experts sur ce site, peut fournir des conseils et des conseils. A) J'ai été enclin à utiliser une API RESTful pour le consommateur avec des réponses JSON en utilisant un composant JAVA dans le backend pour faire les traductions. Cela permettrait d'augmenter le nombre de producteurs (et toutes leurs bizarreries et représentations discrétionnaires pourraient être retirées du consommateur). Pensez-vous que ce soit une bonne idée ou suggérez-vous une approche alternative? B12) Il y a un élément d'authentification et de non-répudiation ici. Chaque producteur peut avoir sa propre façon de mettre en œuvre ceci - soit par des signatures numériques, des jetons et des codes d'accès, des mots de passe uniques envoyés au consommateur pour fournir une authentification à 2 facteurs, etc. Tous les conseils sur la façon de le mettre en œuvre standardisé? Quelles technologies dois-je prendre en compte? C) Puisque les sessions d'authentification doivent être maintenues, est-ce contraire aux principes RESTful?
Toute aide ou réaction que vous pouvez fournir est très appréciée.