API
Une API (en anglais « Application programming interface ») est une interface de programmation d’application. Elle est destinée à être utilisée par des programmes. Le principe de ce type d’interface est le même que celui des UI (« User Interface ») ou des GUI (« Graphical User Interface ») destinées elles à un utilisateur humain.
Composée de constantes, de fonctions, de classes, elle sert de lien entre un programme et les programmes qui vont l’utiliser. Elle peut être proposée par un service web avec une documentation décrivant l’utilisation qui permettra la communication et l’échange des données. Il existe, par exemple, plusieurs API de géolocalisation qui peuvent être intégrées à des programmes. Une API est très souvent proposée par une bibliothèque logicielle composée de fonctions destinées à être utilisées dans divers programmes.
Le principe de base est que le fonctionnement interne n’a pas besoin d’être connu du programme utilisateur. Cela nécessite une documentation fournie décrivant précisément son l’utilisation. Ainsi, lors de l’élaboration d’un logiciel il est possible d’utiliser des parties d’autres logiciels, sans connaître leur fonctionnement interne, si l’on sait comment faire interagir ces différentes parties.
Par exemple, pour utiliser une fonction il suffit de connaître sa spécification, c’est à dire son nom, les types de ses paramètres et de la valeur qu’elle retourne et sa documentation. Dans tous les cas, l’utilisateur, un programme ou un humain, se contente de fournir les données demandées et obtient le résultat du traitement.
Travail à réaliser
- Créer un module dont l’API est la suivante :
|
|
-
Créer, de la façon qui semblera la plus pertinente, un jeu de tests des fonctions, dans ce module.
-
Écrire un programme principal qui utilise ce module.
-
Expliquer quelle est la différence entre les deux spécifications suivantes :
|
|
et
|
|
- On souhaite prendre en charge les cas où l’utilisateur fournirait une dimension négative (erronée donc).
Modifier le code des fonctions de telle sorte qu’une exception de typeValueError
soit levée chaque fois qu’une valeur négative est passée en argument.
Remarque : on pourra se renseigner sur l’utilisation du mot-clé raise
.
Stabilité d’une API
Il est important, lorsqu’on souhaite faire évoluer une API, de faire en sorte que les utilisateurs qui l’utilisaient déjà, avant la modification, puissent toujours le faire sans avoir à modifier le programme ou voir celui-ci ne plus fonctionner. Sauf décision volontaire qu’il faudra communiquer aux utilisateurs, l’évolution d’une API doit apporter de nouvelles fonctionnalités sans en retirer.
Par exemple, on pourrait vouloir proposer aux utilisateurs la possibilité d’arrondir le résultat du calcul d’une aire.
- Modifier le code des différentes fonctions de façon à ce qu’il ressemble à celui de la fonction
disque
ci-dessous (la partie sur la levée de l’exceptionValueError
n’est pas insérée dans le code proposé). Vérifier que le programme écrit à la question 3. fonctionne toujours sans aucune modification.
|
|
-
En déduire comment se comportent, en Python, les paramètres d’une fonction auxquels on attribue des valeurs dans la signature.
-
Dans le programme principal modifier l’appel à la fonction
disque
de telle sorte que le résultat de son calcul soit arrondi à deux chiffres après la virgule. -
Le code utilise la fonction intégrée au langage Python
round
pour arrondir unfloat
à un certain nombre de chiffres après la virgule.
Écrire sa propre fonctionround
en n’utilisant que les opérateurs*
,/
,+
,**
et la fonctionint
.