15 Anni di programmazione

Aneddoti e Codici di un inguaribile ottimista

Un database fumettistico

logo[1]

Comic Vine è un database contenente informazioni sui fumetti pubblicati nel mondo. I dati, inseriti  da una numerosa comunità di appassionati, forniscono ai collezionisti  tutte le informazioni necessarie per gestire le loro raccolte.

Il database è disponibile per le ricerche on-line ma oggi voglio parlarvi del servizio di API messe a disposizione di uno sviluppatore software. Comic Vine, mediante un web service REST, restituisce, sotto forma di file xml, tutte le informazioni richieste al database mediante una query. L’utente però dovrà prima aver richiesto una chiave per la consultazione.

La documentazione non è a mio avviso chiarissima e quindi ho pensato di mostrare qualche esempio di costruzione di query e un semplice codice VB.NET per eseguire la richiesta.

Supponiamo di voler estrarre informazioni relative al fumetto Topolino pubblicato in Italia. Anzitutto occorre conoscere l’ID del fumetto nel database. La query di richiesta è la seguente:

queryString = "http://api.comicvine.com/search/?api_key=" +
     ChiaveFornitaDaComicVine +

"&format=xml&resources=volume&field_list=name,start_year,id&query=Topolino"

Come eseguiamo la richiesta? Ecco un esempio minimo di codice:

Eseguendo questo codice si ottiene il seguente output in formato xml:

Il fumetto Topolino ha un id = 1313. Il passo successivo è capire quanti e quali issues (ossia singoli giornaletti) sono disponibili nel database. La query da inserire nella richiesta è:

 queryString = "http://api.comicvine.com/volume/1313/?api_key=" +
             ChiaveFornitaDaComicVine + "&format=xml&field_list = issues"

Eseguendola con lo stesso codice visto in precedenza si ottiene in output un file xml piuttosto voluminoso (circa 600 kb) che contiene una lista di 2848 singoli numeri. Ecco il dettaglio per un singolo numero che ci fornisce il suo id:

 

 

Noto l’id di un singolo numero possiamo interrogare il database per ottenere tutti i suoi dettagli. La query sarà la seguente:

 queryString = "http://api.comicvine.com/issue/233096/?api_key=" +

          ChiaveFornitaDaComicVine + "&format=xml"

 

1376959-it_tl_2856a_001_super[1]

 

Il vero appassionato a questo punto potrà leccarsi i baffi perché in output avrà a disposizione la copertina in varie dimensioni e l’elenco di tutti i personaggi che appaiono nel numero selezionato. Ecco ad esempio Zio Paperone:

 

 

Noto l’ID del personaggio potrete eseguire una nuova query per conoscere tutti i suoi dettagli ed estrarre le sue apparizioni nel fumetto “Topolino”! Lascio a voi il compito di costruire la query necessaria: attenzione però che il file di output in questo caso sarà piuttosto voluminoso.

Comic Vine mette a disposizione dell’appassionato il suo database gratuitamente. Ovviamente il discorso cambia qualora voleste usarlo in un applicativo commerciale. Le API sono semplici e con poche righe di codice è possibile estrarre un mare di informazioni periodicamente aggiornate da una comunità di collezionisti e fan.

Published 12 set 2010 10:14 da Salvatore Sorrentino