Développement et intégration de solutions numériques - scripts, API et données
Le domaine « Développement et intégration de solutions numériques » évalue l'automatisation et l'intégration : algorithmique, Python, HTTP/API REST, JSON, SQL, Git et conteneurs. Les questions demandent souvent de lire un extrait de code, une requête ou une réponse HTTP.
Langage et robustesse
En Python, liste et dictionnaire couvrent la plupart des besoins ; une fonction retourne une valeur plutôt que d'imprimer. try/except capture les erreurs attendues, pas toutes. Dans une trace d'erreur, la dernière ligne donne le type et le message, les précédentes la chaîne d'appels. argparse gère les paramètres, logging remplace print en production.
HTTP et API REST
GET lit et est idempotent ; POST crée et ne l'est pas ; PUT remplace, PATCH modifie partiellement, DELETE supprime et est idempotent. Les codes 2xx réussissent, 3xx redirigent, 4xx accusent le client, 5xx le serveur. 201 après création, 204 sans contenu, 400 requête invalide, 401 non authentifié, 403 interdit, 404 absent, 429 trop de requêtes, 500 erreur interne, 503 indisponible. Une API REST expose des ressources, sans état, en JSON.
Données et intégration
SQL combine SELECT, WHERE, JOIN, GROUP BY et HAVING. Clé primaire et clé étrangère garantissent l'intégrité ; une transaction respecte ACID. Toute valeur utilisateur passe par une requête paramétrée. Git versionne par commits et branches ; une image Docker est un modèle, le conteneur son instance, et les données persistantes exigent un volume.
Exemple travaillé
Un script interroge /api/incidents puis insère les résultats dans SQLite. On appelle requests.get(url, timeout=10) ; on teste r.status_code == 200 avant r.json(), sinon on journalise et on sort avec un code non nul. L'insertion utilise INSERT INTO incidents(id, severite, date) VALUES (?, ?, ?) avec un tuple : le pilote échappe les valeurs, ce qui bloque l'injection SQL. Un with ferme la connexion. Si l'API répond 429, on lit Retry-After et on réessaie avec un backoff exponentiel.
Pièges qui coûtent des points
Utiliser GET pour supprimer ou POST pour lire. Parser le corps sans vérifier le code HTTP. Concaténer des chaînes dans le SQL. Omettre le timeout : le script se bloque. Journaliser un jeton d'authentification. Stocker les données dans le conteneur sans volume, puis les perdre au redéploiement.