Ich benutze Flask und Flask-RESTful zum Erstellen einer REST-API. Innerhalb dieser API enthalten einige meiner Ressourcen URL-Beziehungen zu anderen Ressourcen.
Beim Ausführen von POST-Anfragen an diese Ressourcen stelle ich fest, dass ich die umgekehrte Funktion von Flasks url_for () benötige, um die eingehende URL zu analysieren.
Beispielsweise kann ein POST zu https://www.example.com/buildings
das folgende json enthalten:
Ich möchte die ID aus owner
und tenant
mithilfe der folgenden Route analysieren:
Gibt es eine bequeme Möglichkeit, dies innerhalb von Flask oder Werkzueg zu tun oder soll ich die URL selbst analysieren? Es wäre schön, die bereits definierte Route wiederverwenden zu können ...
Ich habe diesen Beitrag gefunden, tut es aber scheint nicht zu beschreiben, wie man es außerhalb einer Anfrage macht.
Ich verwende die Funktion route_from
unten:
Ich schrieb dies, indem ich mir die Implementierung von url_for
ansah und sie umkehrte.
Das Argument url
kann eine vollständige URL oder nur der Pfadinformationsabschnitt sein. Der Rückgabewert ist ein Tupel mit dem Endpunktnamen und einem dict
mit den Argumenten.
Disclaimer: Ich habe es nicht ausgiebig getestet. Ich plante, es schließlich als Pull-Anforderung einzureichen, aber ich bin nie dazu gekommen, es vollständig zu testen und einige Komponententests zu schreiben. Wenn es nicht für Sie funktioniert, lassen Sie es mich wissen!
Die einfachste Möglichkeit, einen Testanforderungskontext zu erstellen (danke Leon Young ):
%Vor%Aber alle Sinne unter der Haube der Schaffung von Anfrage Kontext:
%Vor%Wenn kein Protokoll und Host für die Ursachenüberprüfung vorhanden ist, können Sie eine spezielle Abgleichsmethode erstellen:
%Vor%Und benutze es ohne Protokoll und Host:
%Vor%