O que significa "expor" alguma coisa?

18

Por isso, estou trabalhando na criação de um aplicativo Google App Engine e me deparei com o termo "expor" várias vezes, por exemplo, "seu primeiro aplicativo pode expor objetos usando uma API baseada em HTTP" e "expor essa classe de modelo de dados por meio de um API REST ". O que significa "expor"? Existe uma ação específica associada ou é uma parte abstrata do design?

Facilmente confundido
fonte

Respostas:

16

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.1for 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.1com 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).

ipavlic
fonte
19

"Expor" aqui significa o que significa em inglês comum - dê acesso onde o acesso não estaria disponível.

Por exemplo, "seu primeiro aplicativo pode expor objetos usando uma API baseada em HTTP" significa que alguém em outra máquina pode manipular seu objeto em sua máquina solicitando as páginas da Web corretas.

btilly
fonte