human
Qu'est-ce que l'API ? Quand un développeur a-t-il besoin d'une API ? A quoi sert une API ? Explique comme si j'avais cinq ans.
gpt
Pensez à un site Web comme Flickr . Il contient des milliards de photos. Il compte des millions d'utilisateurs, de nombreuses métadonnées de photos associées et des informations de profil d'utilisateur. Supposons maintenant que vous vouliez utiliser ces données. Par exemple, vous souhaitez créer un diaporama Flickr. Flickr doit mettre ces données à votre disposition, d'une manière ou d'une autre. La façon la plus grossière est de « saisir » les pages HTML que vous voulez et de supprimer les éléments dont vous n'avez pas besoin et d'accéder aux éléments que vous voulez et de les utiliser dans votre propre code. Cependant , le HTML peut changer à tout moment ! Ils ont fait plusieurs remaniements au cours de la dernière année. Une autre façon, pourrait-on dire, est d'exposer la base de données au public. Le problème avec cela est qu'il est trop proche des informations sensibles et souvent, les bases de données pourraient être distribuées et donc l'infrastructure peut casser les applications des gens. Au lieu de cela, Flickr peut rendre les données disponibles dans un format « officiel ». Flickr indique que si vous appelez la méthode « flickr.photos.search » et transmettez le texte que vous souhaitez rechercher, nous vous renverrons les résultats de la recherche. Les résultats de la recherche seront au format tel ou tel. Lorsque vous appelez l'une de leurs méthodes, ils s'occupent de la recherche et des recherches dans la base de données, des autorisations, de la sécurité, de l'accès et autres et vous donnent les résultats. Maintenant vous voyez l'avantage de ceci - Flickr pourrait changer son infrastructure ou changer sa structure de base de données ou quoi que ce soit d'autre, mais c'est tout dans les coulisses. Lorsqu'un développeur voit cela, il sait qu'il y a une garantie que le format ne changera pas et il peut continuer à l'appeler ainsi. De même, Flickr peut avoir des centaines d'autres méthodes à appeler, comme « obtenir toutes les photos de cet utilisateur » ou « obtenir les informations EXIF ​​pour cette photo » et « en quelles tailles cette photo est-elle disponible ? ' Cette collection de méthodes est connue sous le nom d' API . Sa forme complète, Application Programming Interface, aura désormais plus de sens - vous * * programmez * * une * * application * * et c'est l' * * interface * * à laquelle vous vous conformerez lorsque vous parlerez à Flickr. C'est juste Flickr. Google a ses propres API. Twitter a le sien, Facebook, beaucoup de sites Web populaires ont le leur. Maintenant, le but est ce que vous en faites. Si vous avez un smartphone, vous avez peut-être remarqué que chaque chien et son oncle ont écrit un client Twitter. J'ai une application qui se trouve dans ma barre d'état système et parcourt mes photos Flickr préférées toutes les heures, en changeant le fond d'écran de mon bureau. J'ai également une application de notification qui se trouve sur mon bureau et répertorie mes tâches Google et une autre pour les éléments de Google Calendar. Divers développeurs écrivent diverses applications qui utilisent les données à leur disposition de différentes manières. Cela vous facilite la vie et augmente également la popularité du site Web - l'une des raisons pour lesquelles Twitter est partout, c'est parce qu'ils ont eu leurs API disponibles dès le début. Lorsque les développeurs écrivent des applications qui utilisent vos API, votre « produit » se répand. C'est pourquoi vous voyez tant de nouveaux comptes Twitter et Reddit ou des applications intéressantes et originales qui utilisent ces sites et qui les rendent encore plus populaires. Exemples rapides : Twitter a une chaise qui pète. Reddit a URL_1 . Vous voyez également de nombreux produits qui peuvent automatiquement publier sur votre mur Facebook ou tweeter pour vous. Ils utilisent les API mises à leur disposition avec votre permission . J'en citerai un autre - il y a une société appelée [UrtheCast] (URL_2) et ils vont lancer un satellite dans l'espace et le satellite diffusera en direct une vue HD de la planète. Je suis intéressé par les API qu'ils mettront à disposition, j'aimerais créer un 'live desktop wallpaper' de la planète. Leurs API m'aideront à le faire. Maintenant, pour développer davantage. Les API ne se limitent pas aux sites Web . Tout peut avoir une API. Le matériel peut avoir une API ; nous avons un [ USB Launcher ] ( URL_0 ) au travail qui est connecté à nos serveurs de build -- chaque fois qu'un build tourne mal , il se tourne vers le développeur qui l' a cassé et lui tire dessus . Nous avons aussi un lapin [ Nabaztag ] ( URL_3 ) qui les nomme et les blâme à haute voix . C'est toutes les API. Supposons que vous vouliez connaître la température actuelle de votre CPU ? Il existe une API pour cela. Voulez-vous créer des fichiers MS-Word DOC à la volée à partir d'une application arbitraire que vous avez écrite ? Il existe une API pour cela. Vous souhaitez parler à votre routeur depuis votre propre application et le faire redémarrer ? Il existe une API pour cela. Envoyer du courrier depuis votre frigo ? Il existe une API pour cela.