BlogBabel Home Page Discussioni Libri Video Classifiche
22.06.07
micampe
33

Habemus API

Qual'è quella cosa tipica del web2.0 che ancora non avevate visto su BlogBabel? Esatto le API aperte!

Abbiamo iniziato a rendere disponibili delle API REST per accedere ad alcune delle informazioni di BlogBabel. Al momento dovreste considerarle come una sorta di preview in attesa di scovare bug e definirle perfettamente, ma siete invitati a cominciare a giocarci e ad offrire feedback in modo da renderle le migliori possibili.

Le API fornite sono fondamentalmente due, e quindi le vediamo una per volta.

Dettagli del blog

L'url di base è

 http://it.blogbabel.com/api/v1/blog/slug

dove slug è l'identificativo del vostro blog su BlogBabel, cioè l'ultima parte dell'url quando visitate i dettagli del blog.

Questa chiamata restituirà un file XML contenente i seguenti dati:

  • nome del blog (Blog di Tizio)
  • url (http://blog.com)
  • url del feed (http://blog.com/feed)
  • rank globale (123)
  • trend (+2 salito di due posti, -3 sceso di tre)
  • slug (blog-di-tizio)
  • inbound links (50 link in ingresso conteggiati da BB)
  • inbound blogs (i 50 link provengono da 20 blog)

In generale potete accedere ad un singolo attributo, e quindi evitare di scaricare roba inutile, usando un frammento a=nome nell'URL , ad esempio per ottenere solo il valore del rank

 http://it.blogbabel.com/api/v1/blog/slug;a=rank/

Potete inoltre aggiungere un ulteriore argomento per scegliere il formato preferito. Le possibilità sono quattro:

  • f=xml, che è anche il default
  • f=txt, ovvero testo semplice, se per esempio volete solo sapere il numero dei link
  • f=json, codifica leggera portabile tra diversi linguaggi di programmazione
  • f=js, cioè la stessa codifica ma racchiusa in una callback javascript

Il vantaggio di avere una callback è che ad esempio potete scrivere del vostro codice javascript che mostra i dati e poi includere come javascript esterno l'URL delle API. In questo modo la vostra funzione verrà richiamata con i dati come argomento. Di default la funzione di callback si chiama bb_rank() ma potete controllarla con l'argomento c=nomecallback.

Quindi volendo mostrare il valore del trend tramite una funzione show_trend() che lo fa lampeggiare potreste usare l'URL:

 http://it.blogbabel.com/api/v1/blog/slug;a=trend&f=js&c=show_trend/

Lista dei blog

L'altra API serve per accedere alla lista dei blog. L'URL di base è

 http://it.blogbabel.com/api/v1/blogs

per questa API è necessario specificare degli argomenti. Potete chiedere le informazioni per un certo numero con l'argomento limit=numero in questo modo:

 http://it.blogbabel.com/api/v1/blogs;limit=10/

ed aggiungere un argomento offset=numero per continuare l'interrogazione

 http://it.blogbabel.com/api/v1/blogs;limit=10&offset=20/

Il formato è in XML ed in un formato differente dall'altra API ma comunque semplice da capire. Se preferite questo formato e volete le informazioni di un singolo blog potete usare l'argomento id:

 http://it.blogbabel.com/api/v1/blogs;id=slug/

dove slug è lo stesso di prima.

NOTE

Queste API sono da considerarsi in BETA, quindi potrebbero cambiare. Non usatele per fare un business plan, non programmate le vacanze in base ad esse e non abusatene troppo, per ora. Se avete suggerimenti o commenti da fare a riguardo siete invitati a farlo sulla lista di supporto o nei commenti, BlogBabel è aperto al feedback, ma evitate cose tipo "posso avere lo storico degli ultimi sei mesi" o "dov'è l'api per il dump dell'intero database".

Commenti

  • 1.

    Grande Gabriele!

    C'è anche la chiamata per i link tra blog, la documentazione provvisoria è qui. Potete giocarci, ma non fidatevi troppo dato che cambierà formato molto presto.

    23.06.07 | ludo
  • 2.

    ah pensavo quella non fosse pubblica :)

    23.06.07 | riffraff
  • 3.

    Ehm, forse hai ragione. :)

    23.06.07 | ludo
  • 4.

    Uau, avevo giusto chiesto nel post precedente...

    23.06.07 | Vincenzo
  • 5.

    Sbaglio o manca un trattino dentro utf8 che non fa funzionare correttamente il feed?

    24.06.07 | Tony Siino
  • 6.

    Quale feed?

    24.06.07 | ludo
  • 7.

    Le API non restituiscono XML valido.

    24.06.07 | Tony Siino
  • 8.

    Molto strano, visto che è generato da elementtree e non a mano... Secondo me siete voi che programmando in ASP avete qualche problema con tecnologie "nuove". :)

    Controllo...

    24.06.07 | ludo
  • 9.

    Tony, ho controllato con xmllint e (ovviamente) l'XML è well formed per tutte le chiamate.

    Se invece fate la validazione aspettandovi un DTD, beh a quel punto ovviamente vi beccate un errore dato che non c'è un DOCTYPE nelle risposte, che non serve a nulla.

    24.06.07 | ludo
  • 10.

    Avviso agli utilizzatori: se pensate di usare le API per un sito o un servizio "pubblico" invece che per fare esperimenti, avvisateci.

    Ogni giorno controlliamo gli accessi, se ne vediamo troppi in arrivo da un sito o servizio, buttiamo fuori il sito e iniziamo a richiedere API key.

    Non possiamo permetterci che il sito per il pubblico venga rallentato (troppo) da chi usa le API.

    24.06.07 | ludo
  • 11.

    credo che tony abbia guardato il feed da internet explorer, "This feed contains code errors" è il messaggio che dà IE quando vede un xml senza doctype.

    24.06.07 | riffraff
  • 12.

    Mi sbaglierò ma l'encoding dovrebbe essere utf-8 e non utf8. Se dico una cavolata scusatemi. Secondo me sono io che essendo un comune utente e non un vecchio nerd non riesco a cogliere la perfezione dell'api well formed. :)

    24.06.07 | Tony Siino
  • 13.

    beh, tony, mia mamma è un comune utente un po' avanti negli anni, e ha smesso di usare IE da un bel po' ;)

    (comunque, sono in beta, e son per gli smanettoni, no?)

    25.06.07 | eio
  • 14.

    Eio secondo me il problema è dell'xml generato.

    27.06.07 | Tony Siino
  • 15.

    Pffff Tony, l'XML va benissimo. Non riesci a usarlo? Peccato... :)

    27.06.07 | ludo
  • 16.

    TONY: io, per quel che ci capisco, lo vedo bene ;)

    27.06.07 | eio
  • 17.

    Non arrendiamoci, magari non servirà a nulla, ma non arrendiamoci. Inviate mail di civile ed educata protesta per la disparità di trattamento fra Juventus e le milanesi. SCRIVETE SINO ALL'INFINITO A QUESTI INDIRIZZI ____________________________ figc.presidenza@figc.it; figc.marketing@figc.it; figc.legale@figc.it; info@uefa.com; segregen@lega-calcio.it; giustiziasport@lega-calcio.it; collarbitrale@lega-calcio.it; stampa@lega-calcio.it; callcenter@giustizia.it; ____________________________________ Scrivete inoltre a TV, Radio e giornali (gli indirizzi sono facilmente rintracciabili in rete) LETTERE BEN CIRCOSTANZIATE E NON VOLGARI, SPIEGHIAMO LE NOSTRE RAGIONI. Si era detto di scatenare l'inferno o no? SCATENIAMOLO CAZZO!!!!!! O ADESSO O MAI PIU'!

    27.06.07 | FURIA BIANCONERA
  • 18.

    Non arrendiamoci, magari non servirà a nulla, ma non arrendiamoci. Inviate mail di civile ed educata protesta per la disparità di trattamento fra Juventus e le milanesi. SCRIVETE SINO ALL'INFINITO A QUESTI INDIRIZZI ____________________________ figc.presidenza@figc.it; figc.marketing@figc.it; figc.legale@figc.it; info@uefa.com; segregen@lega-calcio.it; giustiziasport@lega-calcio.it; collarbitrale@lega-calcio.it; stampa@lega-calcio.it; callcenter@giustizia.it; ____________________________________ Scrivete inoltre a TV, Radio e giornali (gli indirizzi sono facilmente rintracciabili in rete) LETTERE BEN CIRCOSTANZIATE E NON VOLGARI, SPIEGHIAMO LE NOSTRE RAGIONI. Si era detto di scatenare l'inferno o no? SCATENIAMOLO CAZZO!!!!!! O ADESSO O MAI PIU'!

    27.06.07 | NATOJUVENTINO
  • 19.
  • 20.

    Tony, insisto: lascia queste cose a chi le sa fare... non sono feed, sono API. I feed sono una cosa diversa...

    28.06.07 | ludo
  • 21.

    tony: ah ecco perche' avevi problemi, adesso si capisce il perche' ;)

    28.06.07 | becks
  • 22.

    L'XML valido è XML valido.

    28.06.07 | Tony Siino
  • 23.

    Inizio di un API di Feedburner (vostro amato): . utf-8 col trattino.

    28.06.07 | Tony Siino
  • 24.

    Tony, grazie delle preziose lezioni su XML, well-formedness e encoding. Ripeto, casomai ti fosse sfuggito, che i feed sono formati particolari di documenti XML, che nulla hanno a che vedere con le nostre API.

    Riguardo all'encoding dei nostri documenti, sembri essere l'unico ad avere problemi. Meglio così, vuol dire che limitiamo l'accesso alle API ai concorrenti. :)

    28.06.07 | ludo
  • 25.

    Non sono un tuo concorrente. Non c'è di che per le lezioni, ho sollevato un dubbio e ti ringrazio per le tue risposte sempre gentili, pazienti e mai arroganti come ci hai abituato nel tempo.

    28.06.07 | Tony Siino
  • 26.

    Tony, certo che hai una bella faccia tosta. :)

    28.06.07 | ludo
  • 27.

    Ludo ma e' mai possibile che ogni volta che ti si muova una critica ti arrocchi? E' un bug di elementtree evidentemente. Non esiste una specifica utf8 ma e' utf-8. Comunque dovresti rispettare i commentatori e non sfotterli. Quanto alla frase sui concorrenti...allora che ci fai a fare le api se ti spaventi dei concorrenti?

    28.06.07 | Lizard
  • 28.

    Lizard, secondo me le cose stanno in maniera un po' diversa:

    * utf8 o utf-8, l'XML è well formed, oltretutto è l'encoding di default per XML, quindi se non viene riconosciuto utf8 si dovrebbe fare il fallback su utf-8

    * i dati forniti dalle API sono perfettamente utilizzabili, quindi il problema è solo formale

    * di solito in presenza di un bug si scrive una mail segnalandolo, invece di strombazzare pubblicamente problemi veri o presunti (cosa che Tony non ha mai tralasciato di fare verso di noi)

    * e soprattutto, Tony ha insistito a dire che il nostro XML non era valido, quando poi si scopre che cercava di validarlo come se fosse un feed RSS o Atom, cosa che ovviamente non è

    Chi è arrogante, e chi insiste su un problema che non c'è? Come ho già detto più volte in passato, dieci commenti di risposta a Tony su un problema che non pregiudica assolutamente l'utilizzo delle API portano via molto del poco tempo che abbiamo per lavorare su BB.

    Per non parlare poi, come dicevo sopra, dei mille pretesti che Tony ha usato in passato per parlare male di noi. E, cosa ancora più carina, per parlare male di noi dopo aver cercato di inserirsi nel progetto come (autoproclamato) guru (non ci credi? ho i log delle conversazioni con lui in IM).

    Credo quindi di avere qualche motivo per innervosirmi. :)

    28.06.07 | ludo
  • 29.

    Tu ti innervosisci sempre, ci sono fior di discussioni su Blogmetrics. Anche se ti dicessero delle st***zate essere scortesi e' di cattivo gusto cosi' come il tuo riferimento a una conversazione privata che mi sembra improbabile nella forma che proponi (se pubblichi i log ti puo' pure denunciare per il testo unico sulla privacy). La persona di cui parli (non mi piace parlare degli assenti) non e' certo l'ultima arrivata pero'. Nelle comunita' scientifiche le stroncature o le perplessita' aiutano a migliorare...se si e' aperti ad ascoltare. Tu mi sembri poco disposto, non solo in base a questo caso. Tutto qua.

    28.06.07 | Lizard
  • 30.

    Vabbé Lizard, a ognuno le sue opinioni. Tanto mica mi devi sposare, e nemmeno lavoriamo insieme...

    E sinceramente l'abitudine italiana di minacciare facendosi scudo di leggi o leggine mi ha parecchio stufato. Così come la doppiezza di certa gente (non tu, per carità).

    Anzi, facciamo così: il prossimo servizio che sviluppiamo, se ce ne sarà uno, lo facciamo in inglese, così oltre ad avere un pubblico più vasto (e di solito più educato) ci caviamo dalle polemicucce sterili tipiche della micro-blogosfera italiana.

    28.06.07 | ludo
  • 31.

    Dimenticavo, altro vizio italiano che mi ha parecchio stufato: ricondurre una discussione a un vizio di forma (sei arrogante, sei antipatico, ecc.) ottenendo così di passare in secondo piano i contenuti (ha detto una cazzata e ha insistito a difenderla, è scorretto e doppio, ecc.).

    Lizard, non è che sei di destra? Perchè una tecnica abusata da certi politici...

    28.06.07 | ludo
  • 32.

    Contenuto: e' piu' corretto utf-8 allora, fatti un giro. Potevi spiegare benissimo che non dovrebbe influire sul funzionamento invece di avere reazioi acide da zitella. Non mi risulta che Tony sia scorretto (mi scuso se ne parlo) e ho sempre considerato le critiche a Blogbabel sincere e costruttive. Sei pure sfortunato perche' una volta l'ho incontrato a un barcamp e mi ha parlato bene nel vostro lavoro (tecnico), precisando alcune perplessita' di metodo.

    28.06.07 | Lizard
  • 33.

    Pfffffff, rileggiti il thread (che a questo punto chiudo).

    E mi sembrerebbe un po' strano che Toni ci criticasse dal punto di vista tecnico (vedi che succede quando ci prova?).

    L'unica cosa che può fare è attaccarsi a questioni di metodo, "dimenticandosi" che il nostro, di metodo, è stato sviluppato e affinato con discussioni pubbliche, è documentato, e va un po' al di là del "prendiamo i primi 100 blog di Technorati" utilizzato da Tony e socio su BlogItalia.

    Mi spiace, ma non ci hai beccato nemmeno stavolta. Capisco che Tony ti possa stare simpatico mentre io no, ma cerca di superare questo piccolo problema e mettere da parte il "buonismo" di cui mi sembri vittima, la prossima volta.

    E poi, scusa, ma chi l'ha detto che bisogna essere simpatici a tutti i costi? Io preferisco dare un servizio ed essere (per alcuni) antipatico, ma parlare senza peli sulla lingua.

    28.06.07 | ludo