Significa che si abilita l'accesso agli oggetti in qualche modo. Nei tuoi esempi, potresti consentire agli utenti di creare, leggere, aggiornare o eliminare oggetti (di solito abbreviati in CRUD) utilizzando il protocollo HTTP attraverso un modo predefinito per interagire con i tuoi oggetti ( un'API ).
Tale API può aderire a una serie di regole, ad esempio le API RESTful utilizzano i verbi HTTP per eseguire alcune azioni sugli oggetti e aderiscono ad alcuni principi che affermano come le risorse dovrebbero essere identificate / rappresentate e come debbano essere manipolate attraverso tali rappresentazioni.
Nel contesto di un'applicazione Web, supponiamo che nel tuo database siano memorizzati post di blog. Vorresti che gli utenti della tua applicazione potessero fare qualcosa con quei post. Non devono necessariamente utilizzare il tuo sito Web , ma potrebbero forse utilizzare la propria applicazione che si collegherebbe alla tua applicazione (ad esempio un programma di lettura di blog).
Come proprietario dell'applicazione, è possibile definire un'interfaccia attraverso la quale è 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, vedere la definizione dell'API di Twitter ):
- Se
GET /posts/{number} HTTP/1.1
viene richiesto dalla tua applicazione web, fornirai una rappresentazione del tuo oggetto postale con un ID {number}
in un formato predefinito
Si noti che non si sta fornendo un oggetto database effettivo, né l'oggetto applicazione. Stai fornendo una rappresentazione del tuo oggetto
- Se un
POST /posts HTTP/1.1
con a title={text1}&body={text2}
viene pubblicato nella tua applicazione web, creerai un nuovo oggetto post intitolato {text1}
che conterrà {text2}
per il suo corpo e restituirà un valore ID del post appena creato
Ancora una volta, stai consentendo all'utente di manipolare le rappresentazioni dei tuoi oggetti. L'utente non deve sapere come appariranno effettivamente i tuoi oggetti (che viene sottratto dall'interfaccia dell'utente).
Esporre l'oggetto significa fornire all'utente un'interfaccia per accedere e manipolare i tuoi oggetti. Se quell'interfaccia soddisfa alcune condizioni predefinite aggiuntive relative alle rappresentazioni dell'oggetto e degli stati dell'applicazione che espone i suoi oggetti, allora quell'interfaccia viene definita come un'API REST (o RESTful).