Isso significa que você permite que os objetos sejam acessados por alguns meios. Nos seus exemplos, você pode permitir que os usuários criem, leiam, atualizem ou excluam objetos (geralmente abreviados para CRUD) usando o protocolo HTTP por meio de uma maneira predefinida de interagir com seus objetos (uma API ).
Essa API pode aderir a um conjunto de regras - por exemplo, APIs RESTful usam verbos HTTP para executar algumas ações em objetos e aderem a alguns princípios que dizem como os recursos devem ser identificados / representados e como devem ser manipulados através dessas representações.
No contexto de um aplicativo Web, digamos que você tenha postagens de blog armazenadas em seu banco de dados. Você gostaria que os usuários do seu aplicativo pudessem fazer algo com essas postagens. Eles não precisam necessariamente usar seu site , mas talvez possam usar seu próprio aplicativo que se conectaria ao seu aplicativo (por exemplo, um programa de leitura de blog).
Como proprietário do seu aplicativo, você pode definir uma interface através da qual seu aplicativo possa ser acessado. Por exemplo, você pode querer adicionar uma opção para alguns usuários lerem ou escreverem posts no blog. A interface pode se parecer com isso (para um exemplo de uma API mais complexa, consulte a definição da API do Twitter ):
- Se um
GET /posts/{number} HTTP/1.1
for solicitado em seu aplicativo da web, você fornecerá uma representação do seu objeto de postagem com um ID {number}
em um formato predefinido
Observe que você não está fornecendo um objeto de banco de dados real nem seu objeto de aplicativo. Você está fornecendo uma representação do seu objeto
- Se um
POST /posts HTTP/1.1
com a title={text1}&body={text2}
for postado em seu aplicativo da web, você criará um novo objeto de postagem intitulado {text1}
que conterá {text2}
para seu corpo e retornará um valor de ID da postagem recém-criada
Mais uma vez, você está permitindo ao usuário manipular representações de seus objetos. O usuário não precisa saber como seus objetos realmente se parecem (isso é abstraído pela interface do usuário).
Expor o objeto significa fornecer ao usuário uma interface para acessar e manipular seus objetos. Se essa interface satisfizer algumas condições predefinidas adicionais relacionadas às representações do objeto e estados do aplicativo que expõe seus objetos, essa interface é considerada uma API REST (ou RESTful).