Ho un Location Service
con un endpoint che restituisce le persone vicine a un determinato utente:
GET /users/near?user=7455
[
{
"userId": 1214,
"location" : [2134983, 89384]
},
//more users
]
D'altra parte, ho un Visits Service
che gestisce le visite tra utenti:
[
{
"userVisitor" : 7155,
"userVisited" : 8778,
"date" : "1991/02/10"
}
]
Ora, dal gateway API, ho bisogno di recuperare utenti vicini a un determinato utente e che non sono ancora stati visitati da lui. Qualcosa come questo (pseudocodice):
user = 7758
users = LocationService.getNearUsers(user)
output = []
for (userTarget in users) {
if VisitsService.userHasNotVisited(user, userTarget) {
output.add(userTarget)
}
}
return output
È un buon approccio? O dovrei implementare un endpoint in Visits Service
che filtra gli utenti non ancora visitati da un determinato elenco di utenti? Qualcosa del genere:
GET /visits/filter/nonvisited?visitor=7758&targets=1277,3681,3586
e fai qualcosa come:
user = 7758
users = LocationService.getNearUsers(user)
output = VisitsService.filterNonVisited(user, users)
return output
Qual è la soluzione migliore?