Hello tout le monde,
Je suis occupé de bosser avec Vapor et je me posais une question: comment faire pour retourner une erreur quand on est dans une closure dans une route ?
Je m’explique:
Quand on a une route GET comme celle-ci par exemple:
app.get("activities") { request -> String in
// Le code de la route
}
On peut throw une erreur comme ça:
app.get("activities") { request -> String in
throw Abort(.badRequest)
}
Mais qu’en est-il si dans cette route, on appelle un web service externe par exemple ?
Comme ceci:
app.get("activities") { request -> String in
client.execute(request: myRequest).whenComplete { result in
// Comment throw une erreur ici ?
}
}
J’ai essayé avec throw Abort(.badRequest)
, mais Xcode n’a pas l’air ravi:
En cherchant sur Internet, certaines personnes parlaient de:
request.eventLoop.makeFailedFuture(Abort(.badRequest))
Mais je suis pas sur de comprendre comment ils l’utilisent… Dans mon cas, le code tel quel ne fonctionne pas, je dois utiliser une variable, et ensuite j’ai le même soucis.
Bref, si vous avez une idée de comment je peux m’en sortir, je suis preneur (et si c’est expliqué dans le cours sur Vapor de @mbritto, je suis preneur si vous savez m’indiquer où trouver l’info)
Merci bien,
Bonne soirée,
Alexandre