Ein Tool zur automatischen Konvertierung von MITMProxy erfasst in die Öffnung von Spezifikationen 3.0. Dies bedeutet, dass Sie REST-APIs automatisch umgekehrt können, indem Sie nur die Apps ausführen und den Verkehr erfassen.
? NEU!
Unterstützung für die Verarbeitung von HAR, die aus dem Browser Devtools exportiert wurden. Weitere Informationen finden Sie unter Gebrauch - HAR.
Zuerst brauchen Sie Python3 und PIP3.
$ pip install mitmproxy2swagger
# ... or ...
$ pip3 install mitmproxy2swagger
# ... or ...
$ git clone [email protected]:alufers/mitmproxy2swagger.git
$ cd mitmproxy2swagger
$ docker build -t mitmproxy2swagger . Klonen Sie dann das Repo und führen Sie mitmproxy2swagger gemäß den folgenden Beispielen aus.
Um eine Spezifikation zu erstellen, indem Sie den HTTP -Verkehr inspizieren, müssen Sie:
Erfassen Sie den Verkehr mit dem MITMProxy -Tool. Ich persönlich empfehle die Verwendung von MITMWEB, eine Webschnittstelle, die mit MITMproxy integriert ist.
$ mitmweb
Web server listening at http://127.0.0.1:8081/
Proxy server listening at http:// * :9999
...WICHTIG
Um Ihren Client so zu konfigurieren, dass der Proxy von MITM Proxy ausgesetzt ist, wenden Sie sich bitte an die MITMProxy -Dokumentation, um weitere Informationen zu erhalten.
Speichern Sie den Verkehr in einer Flow -Datei.
In MITMWEB können Sie dies tun, indem Sie das Menü "Datei" verwenden und "Speichern" auswählen:

Führen Sie den ersten Pass von Mitmproxy2Swagger aus:
$ mitmproxy2swagger -i < path_to_mitmptoxy_flow > -o < path_to_output_schema > -p < api_prefix >
# ... or ...
$ docker run -it -v $PWD :/app mitmproxy2swagger mitmproxy2swagger -i < path_to_mitmptoxy_flow > -o < path_to_output_schema > -p < api_prefix >Bitte beachten Sie, dass Sie ein vorhandenes Schema verwenden können. In diesem Fall wird das vorhandene Schema mit den neuen Daten erweitert. Sie können es auch ein paar Mal mit unterschiedlichen Flussaufnahmen ausführen, die erfassten Daten werden sicher zusammengeführt.
<api_prefix> ist die Basis-URL der API, die Sie umkehren möchten. Sie müssen es erhalten, indem Sie die in MITMproxy gestellten Anfragen beobachten.
Zum Beispiel, wenn eine App solche Anfragen gestellt hat:
https://api.example.com/v1/login
https://api.example.com/v1/users/2
https://api.example.com/v1/users/2/profile Das wahrscheinliche Präfix ist https://api.example.com/v1 .
Das Ausführen des ersten Durchgangs sollte in der Schema -Datei wie folgt einen Abschnitt erstellen::
x-path-templates :
# Remove the ignore: prefix to generate an endpoint with its URL
# Lines that are closer to the top take precedence, the matching is greedy
- ignore:/addresses
- ignore:/basket
- ignore:/basket/add
- ignore:/basket/checkouts
- ignore:/basket/coupons/attach/{id}
- ignore:/basket/coupons/attach/104754 Sie sollten die Schema -Datei mit einem Texteditor bearbeiten und das ignore: Präfix aus den Pfaden entfernen, die Sie generiert werden möchten. Sie können auch die Parameter, die in den Pfaden erscheinen, einstellen.
Führen Sie den zweiten Pass von MITMProxy2Swagger aus:
$ mitmproxy2swagger -i < path_to_mitmptoxy_flow > -o < path_to_output_schema > -p < api_prefix > [--examples]
# ... or ...
$ docker run -it -v $PWD :/app mitmproxy2swagger mitmproxy2swagger -i < path_to_mitmptoxy_flow > -o < path_to_output_schema > -p < api_prefix > [--examples]Führen Sie den Befehl ein zweites Mal aus (mit derselben Schema -Datei). Es wird die bearbeiteten Zeilen aufnehmen und Endpunktbeschreibungen generieren.
Bitte beachten Sie, dass MITMProxy2Swagger die vorhandenen Endpunktbeschreibungen nicht überschreibt. Wenn Sie sie überschreiben möchten, können Sie sie vor dem Ausführen des zweiten Pass löschen.
PASSION --examples werden Beispieldaten zu Anforderungen und Antworten hinzufügen. Übernehmen Sie Vorsicht, wenn Sie diese Option verwenden, da sie dem Schema sensible Daten (Token, Passwörter, persönliche Informationen usw.) hinzufügen kann. PASSION --headers fügen Anfragen und Antworten Header -Daten hinzu. Übernehmen Sie Vorsicht, wenn Sie diese Option verwenden, da sie dem Schema sensible Daten (Token, Passwörter, persönliche Informationen usw.) hinzufügen kann.
Erfassen und exportieren Sie den Verkehr vom Browser Devtools.
Gehen Sie im Browser Devtools zur Registerkarte Netzwerk und klicken Sie auf die Schaltfläche "HAR exportieren".

Fahren Sie so fort, wie Sie es mit dem MITMproxy -Müllkippe tun würden. mitmproxy2swagger erkennt automatisch die HAR -Datei und verarbeitet sie.
Siehe die Beispiele. Dort finden Sie dort ein generiertes Schema und eine HTML-Datei mit der generierten Dokumentation (über Redoc-Cli).
Siehe die generierte HTML -Datei hier.
Dieses Projekt verwendet:
So installieren Sie die Abhängigkeiten:
poetry installLinter ausführen:
pre-commit run --all-filesInstallieren Sie Pre-Commit-Haken:
pre-commit installTests ausführen:
poetry run pytestFühren Sie Tests mit Abdeckung aus:
poetry run pytest --cov=mitmproxy2swaggerMIT