Reddit App API
IT

Reddit App API · 07 / 08

Ogni scheda deve spiegare il record effettivamente ricevuto

Progetta schede che conservino l’identità della fonte, gestiscano campi assenti ed eseguano l’escape del testo non affidabile senza inventare titoli, conversazioni o risultati.

Scegliere la superficie minima utile alla lettura

Nell’app escursionistica illustrativa, una scheda deve aiutare a decidere se aprire un riferimento storico. Parti da testo disponibile, contesto della fonte, data e link utilizzabile. L’API restituisce record piatti, non un modello di scheda pronto, e non garantisce ogni campo scelto. Costruisci un piccolo adattatore tra record e schermata.

Separa l’identità della fonte dal testo mostrato. Un id presente può aiutare l’app a seguire un elemento, ma titolo o frammento non sostituiscono l’identità in modo affidabile. Non unire record diversi perché parlano della stessa frase. Lascia i dati originali a disposizione dell’adattatore senza esporre credenziali del servizio o dettagli interni di debug nella scheda.

Non indovinare un tipo o titolo mancante

Usa un valore kind valido quando presente: post e comment consentono etichette diverse. Se il tipo manca o non è riconosciuto, usa una dicitura neutra come Record archiviato. Non classificare automaticamente ogni record sconosciuto come commento e non suggerire che un commento isolato rappresenti tutta la discussione di origine.

Considera una fixture proposta con kind=comment, testo leggibile, nessun titolo e nessun link sorgente utilizzabile. La scheda può indicare Commento e Link alla fonte non disponibile, seguiti dal testo. Non serve un titolo generato o un URL inventato. Un’altra fixture potrebbe avere un titolo lungo: permettine il ritorno a capo o offri un’espansione chiara. Sono esempi di test, non record dichiarati presenti nell’archivio.

Trattare il testo come contenuto non affidabile

Esegui un escape sicuro del testo non affidabile prima di inserirlo nell’interfaccia. Conserva interruzioni di paragrafo significative, senza interpretare contenuti arbitrari come istruzioni HTML. Se in seguito aggiungi Markdown, scegli e verifica una politica di rendering limitata. Il testo semplice è una prima versione valida ed evita di promettere formattazioni non implementate.

Valida un link sorgente prima di renderlo azionabile e tratta un valore assente o inutilizzabile come mancante. Indica chiaramente la destinazione dei link esterni. Mantieni etichette leggibili per le azioni, accesso da tastiera e un ordine del focus sensato. Un semplice tooltip non basta a spiegare a tutti i lettori una data o un link indisponibili.

Presentare correttamente date e contesto della conversazione

Se esiste un timestamp di creazione utilizzabile, mostrane significato e formato in modo coerente. Altrimenti indica Data non disponibile. Non copiare su un commento il timestamp del post padre: i due contenuti possono essere stati creati in momenti diversi. La data di recupero registrata dall’app descrive il recupero, non l’età della discussione originale.

Quando parent_id o link_id sono presenti, il raggruppamento locale può collegare record già inclusi nei risultati. La loro presenza non recupera antenati assenti, non dimostra un thread completo e non offre un nuovo filtro. L’API corrente non espone filtri parent_id o link_id. Una scheda può riconoscere il contesto mancante senza costruire una conversazione fittizia.

Tenere i controlli della lista fuori dall’adattatore delle schede

La paginazione della lista deve leggere pagination.has_more e rispettare il limite di pagina. Non abilitare o disabilitare Mostra altro solo perché pagination.relation è eq o gte: la relazione descrive il totale, non la continuazione. Un totale minimo o sconosciuto non dimostra neppure che i record visibili siano invalidi.

Un array data vuoto riuscito appartiene allo stato vuoto della lista, non a una scheda di errore; costa comunque un credito. Nella revisione proposta delle fixture includi titolo lungo, testo e data mancanti, link inutilizzabile e tipo sconosciuto, poi esamina il layout su uno schermo stretto. Sono controlli per la tua implementazione futura, non test eseguiti da questa guida. Torna a /it/#field-notes per età delle fonti e stati.