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.1
se 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.1
con 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).