API

Le API di cui si parla qui non sono insetti ma Application Programming Interface. L'idea è che un programma renda disponibile delle "maniglie" con le quali i programmatori possono utilizzare certe funzionalità senza conoscere il dettaglio interno. Recentemente, però, c'è una tendenza a intendere per API delle Web API, cioè il sottoinsieme di maniglie che è accessibile usando il protocollo HTTP, con cui un programma può dialogare con un altro chiamando certi indirizzi di un'applicazione web.
Nel caso di CodeSHOW, le API sono appunto degli indirizzi speciali che possono essere "invocati" non tanto da un browser quanto da un altro software (come un app per smartphone) per ottenere dei dati che possono essere usati per costruire un servizio alternativo.
Immaginiamo che uno sviluppatore, o un gruppo di studenti di una scuola, voglia realizzare una versione di CodeSHOW che usi gli stessi contenuti, la stessa struttura, ma un'interfaccia e una maniera di esplorare la mostra completamente differente.
Per farlo, basta che progetti e sviluppi un software che chiama le API di CodeSHOW, ottiene i dati e su quella base propone un'esperienza di navigazione differente: in 3D, solo testuale, in voce, o chissà che altro.
Sono disponibile attualmente questi servizi:


I dati sono restituiti in JSON. Ad esempio:
{
	"version": "1.0",
	"host": "http:\/\/localhost\/codexpo",
	"results": [
		"http:\/\/localhost\/codexpo\/Linguaggi\/COBOL.html",
		"http:\/\/localhost\/codexpo\/Genere\/Un_lavoro_da_donne.html",
		"http:\/\/localhost\/codexpo\/Genere\/Le_donne_sotto_i_riflettori.html",
		"http:\/\/localhost\/codexpo\/Attori\/Hopper.html"
	]
}

Gli eventuali contenuti dei pannelli sono restituiti in HTML, esattamente come sono, senza nessuna formattazione speciale. Sta al progettista dell'app decidere come presentarli al visitatore.
Un semplice esempio di uso delle API di CodeSHOW è questa pagina, che usa il metodo /Find per cercare una parola all'interno di tutti i pannelli della Mostra.
Un altro esempio un po' più complesso (ma non molto: sono 10.000 righe di codice) è CodeCAVE. Si tratta di un omaggio alle textual adventures, cioè un tipo di videogiochi che andavano di moda a partire dalla fine degli anni '70.
Il giocatore si trova in un labirinto, spesso sotterraneo, che deve esplorare per trovare un tesoro. Il tutto senza nessun supporto grafico da parte del programma, ma appoggiandosi solo sull'immaginazione del giocatore.
Uno dei primi e più famosi giochi di questo tipo è Zork, che era scritto in MDL, un dialetto LISP per i computer PDP-10.
CodeCAVE è un omaggio a questa categoria di giochi ed utilizzata i dati e le strutture di CodeSHOW ottenuti tramite chiamate alle API.
E' un esempio di uno dei paradigmi fondamentali della programmazione: la separazione tra interfaccia e dati. Seguendo questo paradigma di progettazione si possono immaginare infiniti modi di accedere ad un set di dati, anche completamente diversi da quello immaginato dal progettista originario.


Prossimo pannello:News

© Codexpo.org - Content released under Creative Commons 4.0 BY/SA/NC

  1. Ingresso
  2. Credits
  3. API
  4. News