Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédenteDernière révisionLes deux révisions suivantes | ||
technique:python:api_python [2020/03/07 23:17] – francoisa | technique:python:api_python [2023/02/14 20:55] – francoisa | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== API en Python ====== | ====== API en Python ====== | ||
- | https:// | + | [[https:// |
===== Cas de Mailgun ===== | ===== Cas de Mailgun ===== | ||
Ligne 112: | Ligne 112: | ||
</ | </ | ||
- | A détailler… | + | ===== Cas de l'API de Garradin ===== |
+ | |||
+ | Pour utiliser l' | ||
+ | < | ||
+ | |||
+ | => Send header, 233 bytes (0xe9) | ||
+ | 0000: POST /api/sql/ HTTP/1.1 | ||
+ | 0019: Host: assos-zourit-net.garradin.eu | ||
+ | 003d: Authorization: | ||
+ | 007c: User-Agent: curl/ | ||
+ | 0095: Accept: */* | ||
+ | 00a2: Content-Length: | ||
+ | 00b6: Content-Type: | ||
+ | 00e7: | ||
+ | => Send data, 50 bytes (0x32) | ||
+ | 0000: SELECT * FROM membres where domaine LIKE " | ||
+ | |||
+ | </ | ||
+ | |||
+ | La requête en python doit passer en mode POST (selon la doc) et utiliser l' | ||
+ | |||
+ | En mode GET, utiliser l' | ||
+ | |||
+ | < | ||
+ | import requests | ||
+ | from requests.auth import HTTPBasicAuth | ||
+ | URL=' | ||
+ | |||
+ | reponse = requests.post(URL, | ||
+ | print(reponse.json()) | ||
+ | |||
+ | </ | ||
+ | |||
+ | On peut utiliser la methode '' | ||
+ | < | ||
+ | prepared = requests.Request(' | ||
+ | print(prepared.body) | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== Tests requêtes / résultats JSON ===== | ||
+ | |||
+ | Des outils pour tester les envois / receptions de requetes : | ||
+ | |||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[http:// | ||
+ | * [[https:// | ||
+ | * Avec curl : | ||
+ | < | ||
+ | |||
+ | curl -v -i -X POST -H " | ||
+ | |||
+ | </ | ||
+ | |||
+ | * avec [[https:// | ||
+ | < | ||
+ | |||
+ | http POST monurl.org/ | ||
+ | |||
+ | </ | ||
+ | |||
+ | Voir la doc complète [[https:// | ||
+ | |||
+ | <code bash> | ||
+ | echo ' | ||
+ | |||
+ | |||
+ | </ | ||
+ | ===== Utilisation de json dans une requête sur une API avec un json complexe en python ===== | ||
+ | |||
+ | Exemple avec petit-rapporteur : | ||
+ | < | ||
+ | |||
+ | jsontext = """ | ||
+ | " | ||
+ | " | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | ], | ||
+ | " | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | ] | ||
+ | }""" | ||
+ | |||
+ | </ | ||
+ | |||
+ | Et la requête : | ||
+ | |||
+ | < | ||
+ | r = requests.post(apiurl, | ||
+ | print(r.text) | ||
+ | data = r.json() | ||
+ | |||
+ | </ | ||
+ | |||
+ | json.loads : transforme une string au format long en format json. | ||