¿Qué significa "exponer" algo?

18

Así que estoy trabajando en la creación de una aplicación Google App Engine, y me he encontrado con el término "exponer" varias veces, por ejemplo, "su primera aplicación puede exponer objetos usando una API basada en HTTP" y "exponer esta clase de modelo de datos a través de un API REST ". ¿Qué significa "exponer"? ¿Hay una acción particular asociada o es una parte abstracta del diseño?

Fácilmente desconcertado
fuente

Respuestas:

16

Significa que permite que se acceda a los objetos de alguna manera. En sus ejemplos, puede permitir que los usuarios creen, lean, actualicen o eliminen objetos (generalmente abreviados a CRUD) utilizando el protocolo HTTP a través de alguna forma predefinida para interactuar con sus objetos (una API ).

Esa API puede adherirse a un conjunto de reglas, por ejemplo, las API RESTful usan verbos HTTP para realizar algunas acciones en los objetos y se adhieren a algunos principios que dicen cómo deben identificarse / representarse los recursos y cómo deben manipularse a través de esas representaciones.

En el contexto de una aplicación web, supongamos que tiene publicaciones de blog almacenadas en su base de datos. Desea que los usuarios de su aplicación puedan hacer algo con esas publicaciones. No tienen que usar necesariamente su sitio web , pero tal vez podrían usar su propia aplicación que se conectaría a su aplicación (por ejemplo, un programa lector de blogs).

Como propietario de su aplicación, puede definir una interfaz a través de la cual se pueda acceder a su aplicación. Por ejemplo, es posible que desee agregar una opción para que algunos usuarios lean o escriban publicaciones de blog. La interfaz podría verse así (para ver un ejemplo de una API más compleja, consulte la definición de API de Twitter ):

  • Si GET /posts/{number} HTTP/1.1se solicita a desde su aplicación web, proporcionará una representación de su objeto de publicación con una identificación {number}en un formato predefinido

Tenga en cuenta que no está proporcionando un objeto de base de datos real, ni su objeto de aplicación. Estás proporcionando una representación de tu objeto

  • Si se publica un POST /posts HTTP/1.1con title={text1}&body={text2}a en su aplicación web, creará un nuevo objeto de publicación titulado {text1}que contendrá {text2}para su cuerpo, y devolverá un valor de identificación de la publicación recién creada

Nuevamente, está permitiendo al usuario manipular las representaciones de sus objetos. El usuario no tiene que saber cómo se ven realmente sus objetos (eso es abstraído por la interfaz del usuario).

Exponer el objeto significa proporcionar al usuario una interfaz para acceder y manipular sus objetos. Si esa interfaz satisface algunas condiciones predefinidas adicionales con respecto a las representaciones del objeto y los estados de la aplicación que expone sus objetos, se dice que esa interfaz es una API REST (o RESTful).

ipavlic
fuente
19

"Exponer" aquí significa lo que significa en inglés regular: dar acceso donde el acceso no estaría disponible de otra manera.

Por ejemplo, "su primera aplicación puede exponer objetos usando una API basada en HTTP" significa que alguien en otra máquina puede manipular su objeto en su máquina preguntando por las páginas web correctas.

btilly
fuente