HATEOAS vs interfaccia utente dell'applicazione Frontend

4

Ho appena trovato HATEOAS . Penso di capire un po 'cosa significa, ma qualcosa non mi è chiaro.

Non è stato trovato da nessuna parte come posso creare il client che consuma in HTML. Posso immaginare che per alcuni link genererò pulsanti, per gli altri ci saranno collegamenti ipertestuali. Questo può essere fatto finora.

Ma come creare la GUI per essere indipendente. Intendo

  • come creare le pagine della GUI in modo generico (il layout non può far parte della API)
  • come descrivere i dati, la definizione del modulo, il contenuto della tabella, il client non conoscerà l'aspetto dei dati (per HTML è ragionevole che l'essere umano possa interpretarli correttamente)
  • come limitare i dati (l'utente non può accedere ad alcuni campi)

Mi aspetto ancora di avere un sacco di logica nel front-end. È persino possibile creare un front end generico + di bell'aspetto?

    
posta Zveratko 14.04.2015 - 15:39
fonte

1 risposta

0

Il punto è che il cliente non sa nulla dei dettagli oltre al punto di ingresso.

Invece di cuocere l'API nel client, il client recupera il documento nel punto di ingresso e utilizza i tipi di risorse restituite per navigare tra i risultati.

Con un sito Web, il browser lo fa già e l'unica parte diversa è il server, non il client. Il punto in questo caso è che il server non ha l'API criptato, ma invece costruisce gli URL in base ai tipi di dati e quando si effettua una richiesta anziché il routing in base all'URL, esso esamina i tipi di dati e usa quelli per capire cosa viene richiesto.

Quindi, quando crei un client GUI personalizzato, tutto ciò che devi fare è rifiutare ostinatamente di inserire qualsiasi informazione sulla struttura dell'URL. Quindi non hai altra scelta che effettuare una richiesta all'URL del punto di ingresso, analizzare i tipi di dati restituiti, utilizzare questi tipi per decidere quale oggetto utilizzare e quindi estrarre l'URL dall'oggetto.

Normalmente per un client senza browser Web significa che stai camminando sopra un albero XML e stai ignorando totalmente dove si trova nell'albero in cui ti trovi; stai solo guardando gli attributi di tipo che hai aggiunto. Sai a che punto sei con i tipi di oggetti a ogni livello. Ad esempio, si richiede un documento di livello superiore e si desidera modificare il profilo utente, invece di cercare un percorso basato su un'API, si cerca il tipo. Devi inserire i tipi nel client, anziché i percorsi API. E quindi il nodo con il tipo di profilo conterrà un URL da seguire. Quindi il modulo ha anche un tipo. Pertanto, anche se esistono due moduli e il tuo cliente ne conosce solo uno, ne viene comunque riempito uno corretto.

Limitare i campi a cui l'utente può accedere non dovrebbe essere influenzato da HATEOAS.

Né il server né il client "conoscono" (o si preoccupano) del layout dell'URL. Utilizzi solo le informazioni sul tipo che hai aggiunto.

Avrai bisogno di approfondire i dettagli dell'implementazione prima che abbia molto senso.

Il link lo spiega dettagliatamente con esempi.

    
risposta data 02.01.2019 - 21:23
fonte

Leggi altre domande sui tag