Cette API simple Falcon prendra HTTP POST
avec enctype=multipart/form-data
et un téléchargement de fichier dans le paramètre file
et imprimer le contenu du fichier sur la console:Simuler multipart/upload de fichiers sous forme de données avec le module d'essai de Falcon
# simple_api.py
import cgi
import falcon
class SomeTestApi(object):
def on_post(self, req, resp):
upload = cgi.FieldStorage(fp=req.stream, environ=req.env)
upload = upload['file'].file.read()
print(upload)
app = falcon.API()
app.add_route('/', SomeTestApi())
One peut également utiliser le middleware falcon-multipart pour atteindre le même objectif.
Pour l'essayer, exécutez-le par ex. avec gunicorn
(pip install gunicorn
),
gunicorn simple_api.py
puis utilisez cURL (ou tout client reste de choix) pour télécharger un fichier texte:
# sample.txt
this is some sample text
curl -F "[email protected]" localhost:8000
Je voudrais tester cette API maintenant avec Falcon de testing helpers en simulant un téléchargement de fichier. Cependant, je ne comprends pas encore comment faire cela (si c'est possible du tout?). Le simulate_request method a un paramètre file_wrapper
qui pourrait être utile mais de la documentation je ne comprends pas comment cela est censé être rempli.
Des suggestions?