Habemus API

micampe

22/06/07

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

  • ludo
    23/06/07

    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.

  • riffraff
    23/06/07

    ah pensavo quella non fosse pubblica :)

  • ludo
    23/06/07

    Ehm, forse hai ragione. :)

  • Vincenzo
    23/06/07

    Uau, avevo giusto chiesto nel post precedente...

  • Tony Siino
    24/06/07

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

  • ludo
    24/06/07

    Quale feed?

  • Tony Siino
    24/06/07

    Le API non restituiscono XML valido.

  • ludo
    24/06/07

    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...

  • ludo
    24/06/07

    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.

  • ludo
    24/06/07

    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.

  • riffraff
    24/06/07

    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.

  • Tony Siino
    24/06/07

    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. :)

  • eio
    25/06/07

    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?)

  • Tony Siino
    27/06/07

    Eio secondo me il problema è dell'xml generato.

  • ludo
    27/06/07

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

  • eio
    27/06/07

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

  • FURIA BIANCONERA
    27/06/07

    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'!

  • NATOJUVENTINO
    27/06/07

    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'!

  • Tony Siino
    28/06/07
  • ludo
    28/06/07

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

  • becks
    28/06/07

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

  • Tony Siino
    28/06/07

    L'XML valido è XML valido.

  • Tony Siino
    28/06/07

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

  • ludo
    28/06/07

    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. :)

  • Tony Siino
    28/06/07

    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.

  • ludo
    28/06/07

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

  • Lizard
    28/06/07

    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?

  • ludo
    28/06/07

    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. :)

  • Lizard
    28/06/07

    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.

  • ludo
    28/06/07

    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.

  • ludo
    28/06/07

    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...

  • Lizard
    28/06/07

    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.

  • ludo
    28/06/07

    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.

La discussione per questo articolo è chiusa.

Tag principali

Archivio

Ultimi post