Significa che abiliti l'accesso agli oggetti con qualche mezzo. Nei tuoi esempi, puoi consentire agli utenti creare, leggere, aggiornare o eliminare oggetti (solitamente abbreviati in CRUD ) utilizzando il protocollo HTTP attraverso un modo predefinito di interagire con i tuoi oggetti (una API ).
Quell'API può aderire a un insieme di regole, ad es. Le API RESTful utilizzano Verbi HTTP per eseguire alcune azioni sugli oggetti e aderiscono ai alcuni principi che dicono come le risorse dovrebbero essere identificate / rappresentate e come dovrebbero essere manipolate attraverso tali rappresentazioni.
Nel contesto di un'applicazione web, supponiamo che i tuoi post siano archiviati nel tuo database. Vorresti che gli utenti della tua applicazione fossero in grado di fare qualcosa con quei post. Non devono necessariamente usare il sito web , ma potrebbero forse utilizzare la propria applicazione che si connetterebbe alla tua applicazione (ad esempio un programma di lettura di un blog).
Come proprietario dell'applicazione, è possibile definire un'interfaccia tramite cui è possibile accedere all'applicazione. Ad esempio, potresti voler aggiungere un'opzione per alcuni utenti per leggere o scrivere post sul blog. L'interfaccia potrebbe essere simile a questa (per un esempio di API più complessa, vedi la definizione dell'API di Twitter ):
- Se viene richiesta una
GET /posts/{number} HTTP/1.1
dalla tua applicazione web, fornirai una rappresentazione del tuo oggetto post con un id {number}
in un formato predefinito
Si noti che non si sta fornendo un oggetto di database effettivo, né l'oggetto dell'applicazione. Stai fornendo una rappresentazione del tuo oggetto
- Se una
POST /posts HTTP/1.1
con una title={text1}&body={text2}
viene pubblicata nella tua applicazione web, creerai un nuovo oggetto post intitolato {text1}
che conterrà {text2}
per il suo corpo e restituirà un valore id del nuovo creato post
Di nuovo, stai permettendo all'utente di manipolare le rappresentazioni dei tuoi oggetti. L'utente non deve sapere come sono realmente gli oggetti (cioè astratti dall'interfaccia dall'utente).
Esporre l'oggetto significa fornire all'utente un'interfaccia per accedere e manipolare i tuoi oggetti. Se quell'interfaccia soddisfacesse alcune condizioni predefinite aggiuntive riguardanti le rappresentazioni dell'oggetto e gli stati dell'applicazione che espone i suoi oggetti, allora quell'interfaccia sarebbe un'API REST (o RESTful).