Come autore API, dovrei considerare Empty e Null lo stesso nei criteri di ricerca?

3

Ho un'API RESTFUL, uno degli endpoint riceve i criteri di ricerca che contiene la proprietà per "Titolo".
Devo consentire ai consumatori di inviare null (o eliminare la proprietà) o Empty string in questa proprietà e trattare entrambi con lo stesso significato in questo contesto?
Voglio dire, per me non dovrei cercare con null , e in questo contesto fare ricerche con vuoto non restituirà mai risultati.

O questo dipende da me e devo solo tenerlo documentato e coerente in tutte le mie API?

    
posta Dabbas 08.02.2018 - 10:28
fonte

3 risposte

9

Devi rispondere alla domanda: "C'è una differenza tra un titolo vuoto e un titolo sconosciuto?" nel tuo contesto.

In un contesto di ricerca, un titolo vuoto potrebbe significare che stai cercando solo persone senza titolo.

Considerando che l'assenza di titolo potrebbe significare cercare persone indipendentemente dal titolo.

Quindi fai la tua scelta: la differenza è rilevante nel tuo caso d'uso.

    
risposta data 08.02.2018 - 11:12
fonte
0

Non puoi inviare null su REST. Tutto quello che puoi inviare sono stringhe, ad es. la stringa "null". null è un valore speciale riconosciuto per es. da un motore SQL o da un interprete del linguaggio di programmazione. Tali strumenti possono distinguere tra null e "null" (e "").

Un punto finale REST non può; se decidi di interpretare la stringa "null" come caso speciale, non puoi più accettare quella stringa letteralmente. Non lo farei mai, dal momento che i clienti non hanno attività che inviano valori speciali dalla propria rappresentazione interna a un fornitore di informazioni esterne. Se un client significa "", può semplicemente inviare "" (ad esempio api.com/service?firstname=Beyonce&lastname= ).

Non hai idea di quante persone chiamate "Null" abbiano reso le loro vite rese infelici da interfacce di scambio dati mal programmate. Non aggravare il problema!

    
risposta data 08.02.2018 - 10:36
fonte
0

Tony Hoare, che ha introdotto Null lo ha definito il suo "errore da un miliardo di dollari".

Dovresti utilizzare qualcosa di significativo per il tuo dominio anziché null. Un contrassegno esplicito che indica che non sai qualcosa o vuoi una ricerca più ampia. Non utilizzare un errore di programmazione di basso livello per l'API del tuo dominio!

    
risposta data 08.02.2018 - 16:12
fonte

Leggi altre domande sui tag