Pattern per endpoint che instrada le richieste?

4

Sto creando un servizio che invierà notifiche a molti altri servizi. Ha un paio di tipi di notifica diversi a cui ogni consumatore può interessare, ma probabilmente non si preoccuperà di tutti loro.

Invece di richiedere molti endpoint diversi, sto pensando di creare un singolo endpoint con un parametro notificationType . I consumatori delle notifiche possono scartare i tipi a cui non interessano e l'integrazione di altri servizi con il servizio di notifica è più semplice.

Questo è un pattern (o anti-pattern)? Come si chiama? Sembra che ai tempi degli schemi XML questa fosse una cosa più comune di quanto non sia con JSON (prima del mio tempo, ma so di sistemi legacy che lo fanno). Mi ricorda anche un proxy inverso, ma sembra diverso. Presumo che ora sia accigliato, ma non so nemmeno come cercare discussioni al riguardo.

    
posta Steve Ellis 09.12.2016 - 22:28
fonte

3 risposte

0

Se inserisci il tipo nei dati e non lo cuoce nell'URL, allora il tipo anziché la conoscenza degli endpoint è considerato una best practice ed è una parte importante di HATEOAS.

link è la migliore risorsa che conosca per spiegare questo.

    
risposta data 02.01.2019 - 21:56
fonte
-1

Instead of requiring many different endpoints, I am thinking of making a single endpoint that has a notificationType parameter.

Per riassumere, stai decidendo

http://example.com/notifications/<notificationType>

e

http://example.com/notifications/?notificationType=<notificationType>

giusto?

Bene, il primo segue rigorosamente REST. E il secondo ti rende più facile abbonarti a diversi tipi di notifiche contemporaneamente. Ma in ogni caso sono molto simili tra loro e l'uso di ognuno dipende dal design del tuo sistema. Se i tuoi tipi di notifica sono molto granulari, ce ne sono alcuni, vai con il primo. Se ce ne sono così tanti, scegli il secondo.

    
risposta data 19.12.2016 - 12:33
fonte
-1

Mi sembra che tu stia passando la borsa al prossimo servizio. Perché non generare eventi diversi per casi d'uso diversi e solo i consumatori possono iscriversi agli eventi a cui sono interessati. Sono d'accordo con Caleb. Cerca in un modello Bus eventi se questi sono micro-servizi sulla stessa macchina

    
risposta data 14.05.2018 - 02:46
fonte