Dunque, la questione è questa: esporre un servizio sulla PDND, da quel che ho potuto leggere, non è diverso dall’esporre un semplice servizio, tecnicamente parlando.
Se capisco bene basta esporre un semplice servizio REST, con qualche vincolo sui payload ma niente di che immagino.
L’unica cosa che cambia è il livello autorizzativo, l’autenticazione avviene sulla PDND e il servizio deve solo verificare l’autorizzazione, verificare che il token sia valido.
A questo si aggiunge, opzionalmente, una eventuale chiamata all’infrastruttura di PDND per recuperare info sul chiamante che non sono presenti nel token, non è obbligatorio, ma se hai bisogno di fare autorizzazione a livelli un po’ più granulari, potrebbe servirti.
Detto ciò, questi meccanismi non sono diversi dai normali meccanismi che fanno uso di OpenID ad esempio.
Risulta quindi comodo avere un API GW, in modo da demandare a lui l’autorizzazione ed esporre servizi semplici, che non devono ogni volta reimplementare l’acqua calda (verifica del token) ma anche per andare ad esporre magari servizi già esistenti, senza modificarli perché tanto al layer autorizzativo pensa l’API GW.
In definitiva è tutto abbastanza semplice, solo che spesso mancano le risorse, per sviluppare un servizio per PDND il semplice sviluppatore, se avesse un paio di librerie fornite, potrebbe impiegare a mio avviso non più di mezz’ora a trasformare un servizio in un servizio PDND (ok, faccio qualche semplificazione) allo stesso modo in cui un servizio può servire una SPA se messo dietro ad un API GW che si occupa di fare l’autorizzazione e/o l’autenticazione.
Resta fuori il discorso di reperire le info dai vari db etc etc, che è un discorso molto legato all’ente, al tipo di dati, privacy e quant’altro.
Comunque sia, un API GW un po’ più evoluto potrebbe anche fare mediazione per esporre i dati, volendo.
A mio avviso, come spesso accade, mancano librerie, ambienti di sviluppo, framework e chi più ne ha…più ne condivida per favore 