Come rilevare la modifica in tempo reale nella risposta dell'API

1

Ho un endpoint API scritto per la versione e lo stato delle applicazioni tomcat. Restituisce una risposta JSON con i dettagli. Volevo sapere, come posso monitorare qualsiasi cambiamento nella risposta JSON in tempo reale. Sto creando un dashboard in cima agli endpoint.

Utilizzerò i canali dei django per consumare gli eventi in tempo reale. Ma ancora bloccato in modo per rilevare i cambiamenti in tempo reale nella risposta di endpoint API.

Modifiche nella versione finale è probabile che accada dopo la distribuzione.

EDIT 1

Lascia che l'endpoint della versione sia / api / v1 / versione. GET su questo endpoint restituirà una risposta JSON

{ 
"version": "1.0.3-RELEASE", 
"git_tag": "hot_fix"
} 

Dopo una distribuzione, la stessa risposta JSON cambierà. Ora un GET sullo stesso endpoint ti darà

{ 
"version":"1.0.4-REL‌EASE", 
"git_tag": "JIRA2134"
}

Voglio monitorare questo cambiamento in tempo reale. Piuttosto che eseguire il polling dopo ogni "x" minuto e identificare una modifica.

Situazione simile se per l'endpoint dell'API della salute.

Ogni aiuto è Benvenuto.Per favore fatemi sapere se questa non è la sede giusta per fare la domanda.

    
posta Munai Das Udasin 13.08.2016 - 09:21
fonte

3 risposte

2

Non puoi spingere le informazioni dal punto finale stesso. Ma dal momento che controlli il processo di distribuzione, puoi aggiungere un'interfaccia push come parte della distribuzione.

Ad esempio.

Aggiungi una seconda interfaccia alla quale puoi connetterti con una metodologia push come polling lungo, code o nservicebus. Chiedi ai tuoi clienti di connettersi a questo in aggiunta all'apis normale.

Quando i tuoi server CI spingono una distribuzione per vivere, invitalo anche a inviare un messaggio a questa seconda API, che a sua volta la inoltra a tutti i tuoi clienti

    
risposta data 22.08.2016 - 10:51
fonte
0

quando ottieni risposta da parte dell'utente finale gestiscilo con la stessa semplicità con cui gestisci la risposta sul lato client [puoi usare HttpRequest.META] se la tua risposta è troppo grande e richiede più tempo per elaborarla puoi creare un altro oggetto campione e confrontalo con la richiesta.

se non hai bisogno di elaborarlo allo stesso tempo puoi fare il suo log ed elaborarlo in seguito, stiamo usando il servizio di Windows per elaborarlo successivamente [manterrà il tuo throughput]

    
risposta data 13.08.2016 - 18:00
fonte
0

Se l'endpoint coopera: l'endpoint potrebbe restituire una versione e un tempo di validità garantito. Quindi il messaggio sarebbe "1.0.3, valido fino a (qualche data almeno un giorno di distanza)", fino a quando il passaggio a 1.0.4 si avvicina. Se lo sviluppatore del server desidera rilasciare 1.0.4 mercoledì 13:00, la risposta cambia in "1.0.3, valido fino a mercoledì 1pm". Se perde il tempo di un'ora, passa a "valido fino a mercoledì 2pm".

Un'alternativa: invia una richiesta con un valore di timeout elevato. La richiesta invia quale versione assume, la risposta arriva immediatamente se la versione è diversa, o quando la versione cambia, o appena prima del timeout.

    
risposta data 18.09.2016 - 23:50
fonte

Leggi altre domande sui tag