Que signifie «exposer» quelque chose?

18

Je travaille donc sur la création d'une application Google App Engine, et je suis tombé sur le terme "exposer" un certain nombre de fois, par exemple "votre première application peut exposer des objets à l'aide d'une API basée sur HTTP" et "exposer cette classe de modèle de données via un API REST ". Que signifie «exposer»? Y a-t-il une action particulière qui lui est associée ou est-ce une partie abstraite du design?

Facilement dérouté
la source

Réponses:

16

Cela signifie que vous autorisez l'accès aux objets par certains moyens. Dans vos exemples, vous pouvez laisser les utilisateurs créer, lire, mettre à jour ou supprimer des objets (généralement abrégés en CRUD) en utilisant le protocole HTTP via une manière prédéfinie d'interagir avec vos objets (une API ).

Cette API peut adhérer à un ensemble de règles - par exemple, les API RESTful utilisent des verbes HTTP pour effectuer certaines actions sur les objets et elles adhèrent à certains principes qui disent comment les ressources doivent être identifiées / représentées et comment elles doivent être manipulées via ces représentations.

Dans le contexte d'une application Web, disons que des articles de blog sont stockés dans votre base de données. Vous souhaitez que les utilisateurs de votre application puissent faire quelque chose avec ces messages. Ils ne doivent pas nécessairement utiliser votre site Web , mais pourraient peut-être utiliser leur propre application qui se connecterait à votre application (par exemple, un programme de lecture de blog).

En tant que propriétaire de votre application, vous pouvez définir une interface permettant d'accéder à votre application. Par exemple, vous souhaiterez peut-être ajouter une option permettant à certains utilisateurs de lire ou d'écrire des articles de blog. L'interface pourrait ressembler à ceci (pour un exemple d'une API plus complexe, voir la définition de l'API de Twitter ):

  • Si un GET /posts/{number} HTTP/1.1est demandé à partir de votre application Web, vous fournirez une représentation de votre objet de publication avec un identifiant {number}dans un format prédéfini

Notez que vous ne fournissez pas un véritable objet de base de données, ni votre objet d'application. Vous fournissez une représentation de votre objet

  • Si un POST /posts HTTP/1.1avec un title={text1}&body={text2}est publié dans votre application Web, vous créerez un nouvel objet de publication intitulé {text1}qui contiendra {text2}pour son corps et renverra une valeur d'ID de la publication nouvellement créée.

Encore une fois, vous autorisez l'utilisateur à manipuler les représentations de vos objets. L'utilisateur n'a pas besoin de savoir à quoi ressemblent réellement vos objets (qui est retiré par l'interface de l'utilisateur).

Exposer l'objet signifie fournir à l'utilisateur une interface pour accéder et manipuler vos objets. Si cette interface satisfait à certaines conditions prédéfinies supplémentaires concernant les représentations de l'objet et les états de l'application qui expose ses objets, alors cette interface est considérée comme une API REST (ou RESTful).

ipavlic
la source
19

"Expose" signifie ici ce que cela signifie en anglais régulier - donner accès là où l'accès ne serait pas disponible autrement.

Par exemple, «votre première application peut exposer des objets à l'aide d'une API basée sur HTTP» signifie que quelqu'un sur une autre machine peut manipuler votre objet sur votre machine en demandant les bonnes pages Web.

btilly
la source