Come dovrebbe un'API gestire gli errori di input che non sono mostrati?

0

Sto costruendo un'API che, tra le altre cose, consentirà al consumatore di creare un record. Quel record può avere una matrice di immagini (passate come URL). Supponiamo che il consumatore passi una serie di URL di immagini, ma alcuni restituiscano un 404, ecceda un limite di dimensioni del file, ecc. - cosa dovrebbe fare l'API? Vedo due possibili opzioni:

  1. Fail. Segnalare al consumatore al primo segno di problemi.
  2. Crea comunque il record, saltando gli URL non validi e riferisci al consumatore quali URL di immagine non sono riusciti e perché.

Sto cercando di utilizzare l'API JSON per il mio formato di richiesta e risposta. Secondo le specifiche, dice che:

The members data and errors MUST NOT coexist in the same document.

link

Questo suggerirebbe che la mia opzione # 2 è un no-go. Pensieri?

    
posta ProgrammerNewbie 22.06.2017 - 15:06
fonte

2 risposte

1

Sì, immagino che l'opzione # 2 non sia possibile in JsonAPI.

A proposito, la tua domanda sembra legata alla nozione di ACID -ity nei database.

Non hai detto che tipo di record -s stai creando. Vorrei tuttavia suggerire di evitare di creare un record "incompleto".

OTOH, potresti prendere in considerazione la creazione di un record e aggiungere inoltre vari dati correlati che forniscono l'URL delle immagini non riuscite.

Il punto è cosa faresti tu (o gli utenti successivi della tua API) con questi record "incompleti"? Oppure potresti estendere la tua API non solo per "creare" record ma anche per "completare" i record con dati aggiuntivi (ancora non approvati). Quindi la richiesta "crea" verrebbe restituita, ad es. un insieme di immagini non valide, ecc ...

In altre parole, il caso dell'URL di immagini mancanti è una situazione eccezionale o è qualcosa di "normale"? Se si tratta di una situazione normale, è necessario progettare l'API per gestirla (come un successo).

Si noti inoltre che un URL può essere temporaneamente "sbagliato" (ad esempio perché il server Web che fornisce quell'immagine è temporaneamente fuori servizio, ma potrebbe funzionare domani)

(la tua domanda è IMHO troppo ampia)

    
risposta data 22.06.2017 - 15:30
fonte
0

Perché la matrice? Fai in modo che la tua API gestisca un'immagine alla volta e passi come un professionista se l'immagine non può essere recuperata.

    
risposta data 22.06.2017 - 19:55
fonte

Leggi altre domande sui tag