Metodi per l'azione front-end del gestore che richiede più richieste

0

Sto lavorando a un progetto di medie dimensioni. Una delle parti ha a che fare con la creazione dell'account.

All'inizio sono andato con un design API RESTful, ma ora ci ripenso. I dati persistenti vengono salvati in MongoDB.

Quindi per creare un utente, è richiesta una richiesta API al back-end. Dopo aver creato l'account, un'altra chiamata API a /units avrebbe aggiunto l'utente appena creato all'unità. Ho modellato questo processo in due passaggi, il cliente non è divertito.

La mia prima richiesta include informazioni sull'account, che restituiscono l'id utente. La seconda richiesta modifica la unit e aggiunge l'utente all'unità.

Vogliono che questo sia modellato come un mago, riempire i dati, fare clic su Nexts e fatto. Quindi, essenzialmente, mi trovo di fronte a due opzioni:

  1. Invia più richieste in ordine, se il client riceve un errore su una qualsiasi delle richieste, esegui il rollback (manualmente inviando nuovamente le richieste ...)
    1. Crea un nuovo percorso per lo scopo

Mi sto solo chiedendo cosa farebbe? Il primo sembra orribile; ma il secondo suona unRSTSTful. Qualcun altro ha affrontato questo?

    
posta Shane Hsu 21.06.2017 - 07:58
fonte

1 risposta

1

Il tuo back-end dovrebbe conoscere i passaggi della procedura guidata che sono stati completati e quali no, e dovrebbe sapere a che punto l'utente può iniziare a utilizzare il sistema.

Ad esempio puoi POST a /user/registration/step1 che fornisce alcuni dettagli, quindi POST /user/registration/step2 ecc. Prima di completare tutti i passaggi l'utente potrebbe anche tornare indietro nella procedura guidata e ripubblicare un altro passaggio. Nel caso in cui l'utente completi alcuni passaggi, lascia il sito e torna un altro giorno, puoi GET /user/registration/step1 ecc per ripopolare la procedura guidata.

Questo approccio è sia RESTful che molto pratico.

Potrebbe anche essere utile considerare un progetto in cui determinate funzioni del software richiedono che un certo numero di passaggi della procedura guidata siano stati completati. In questo caso, quando l'utente tenta di eseguire un'azione, è necessario ricordare ciò che stavano facendo, reindirizzarli al primo passaggio della procedura guidata incompleto e quando hanno completato abbastanza passaggi, dare loro la possibilità di tornare alla loro attività originale, o completare tutte le restanti passi del wizard.

Questo design è un po 'complicato per essere corretto, ma evita di perdere utenti che non possono essere disturbati per completare tutti i passaggi della procedura guidata in anticipo.

    
risposta data 21.06.2017 - 08:09
fonte

Leggi altre domande sui tag