API

Le API di cui si parla qui non sono insetti ma Application Programming Interface, cioè interfacce per programmare applicazioni. 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 da un browser - come quello che state usando ora: Firefox, Opera, Chrome, Edge, Safari ... - ma da un altro software - come un app per smartphone - per ottenere dei dati che possono essere usati per costruire una vista alternativa.

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.2",
		"host": "https://www.codeshow.it",
		"results": {
			"room": "Concetti",
			"neighbours": {
			"nord": "Ingresso",
			"sud": "Contesti",
			"est": "Codici",
			"ovest": "Musei"
		},
		"panels": [
			"Concetti",
			"Magia_Digitale",
			"Programmi",
			"Codice",
			"Linguaggi",
			"Errori",
			"Esecuzione",
			"Algoritmi"
		]
		}
		}

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.

Non è solo una questione di varianti e di gusti: l'accessibilità di contenuti per persone con disabilità sensoriali è garantita proprio da questa separazione. Un testo potrebbe essere ingrandito, reso più arioso con una spaziatura maggiore tra le lettere o le righe, tradotto in un'altra lingua, oppure trasformato in voce.

Prossimo pannello:  News



Versione: 20/01/2022 - 18:42:00

Parole: 314

Pannelli

Ingresso                    
Timeline                    
Geo                         
Credits                     
API                         
News                        
🔎