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 une 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?
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é en CRUD) en utilisant le protocole HTTP via une manière prédéfinie d'interagir avec vos objets (un API ).
Cette API peut adhérer à un ensemble de règles - par exemple RESTful Les API utilisent verbes HTTP pour effectuer certaines actions sur les objets et adhèrent à certains principes qui disent comment les ressources doivent être identifiées/représentées et comment elles devrait être manipulé à travers 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 publications. 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 à travers laquelle votre application est accessible. 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 définition de l'API de Twitter ):
GET /posts/{number} HTTP/1.1
est demandé depuis votre application Web, vous fournirez une représentation de votre objet de publication avec un identifiant {number}
dans un format prédéfiniNotez 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
POST /posts HTTP/1.1
avec un title={text1}&body={text2}
est publié dans votre application Web, vous allez créer un nouvel objet de publication intitulé {text1}
qui contiendra {text2}
pour son corps, et renverra une valeur id du message nouvellement créé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 (c'est-à-dire abstrait 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 satisfaisait à 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 serait une API REST (ou RESTful)).
"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.