mitm2openapi 0.7.0

Convert mitmproxy flow dumps and HAR files to OpenAPI 3.0 specs — fast Rust rewrite of mitmproxy2swagger
Documentation
1
2
3
4
5
6
7
{"log":{"version":"1.2","creator":{"name":"test","version":"1.0"},"entries":[
  {"startedDateTime":"2025-01-20T10:00:00.000Z","time":50,"request":{"method":"GET","url":"https://api.example.com/api/v1/contract/ticker","httpVersion":"HTTP/1.1","cookies":[],"headers":[],"queryString":[],"headersSize":-1,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Content-Type","value":"application/json"}],"content":{"size":60,"mimeType":"application/json","text":"{\"success\": true, \"data\": {\"price\": 42000.5}}"},"redirectURL":"","headersSize":-1,"bodySize":60},"cache":{},"timings":{"send":1,"wait":40,"receive":9}},
  {"startedDateTime":"2025-01-20T10:00:01.000Z","time":50,"request":{"method":"GET","url":"https://api.example.com/api/v1/contract/ticker","httpVersion":"HTTP/1.1","cookies":[],"headers":[],"queryString":[],"headersSize":-1,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Content-Type","value":"application/json"}],"content":{"size":55,"mimeType":"application/json","text":"{\"success\": false, \"code\": 1, \"message\": \"error\"}"},"redirectURL":"","headersSize":-1,"bodySize":55},"cache":{},"timings":{"send":1,"wait":40,"receive":9}},
  {"startedDateTime":"2025-01-20T10:00:02.000Z","time":50,"request":{"method":"GET","url":"https://api.example.com/api/v1/contract/fair_price/BTC","httpVersion":"HTTP/1.1","cookies":[],"headers":[],"queryString":[],"headersSize":-1,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Content-Type","value":"application/json"}],"content":{"size":65,"mimeType":"application/json","text":"{\"success\": true, \"data\": {\"fairPrice\": 42100.0}}"},"redirectURL":"","headersSize":-1,"bodySize":65},"cache":{},"timings":{"send":1,"wait":40,"receive":9}},
  {"startedDateTime":"2025-01-20T10:00:03.000Z","time":50,"request":{"method":"GET","url":"https://api.example.com/api/v1/contract/fair_price/ETH","httpVersion":"HTTP/1.1","cookies":[],"headers":[],"queryString":[],"headersSize":-1,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Content-Type","value":"application/json"}],"content":{"size":60,"mimeType":"application/json","text":"{\"success\": false, \"code\": 2, \"message\": \"symbol not found\"}"},"redirectURL":"","headersSize":-1,"bodySize":60},"cache":{},"timings":{"send":1,"wait":40,"receive":9}},
  {"startedDateTime":"2025-01-20T10:00:04.000Z","time":80,"request":{"method":"POST","url":"https://api.example.com/api/v1/private/order/place","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Content-Type","value":"application/json"}],"queryString":[],"headersSize":-1,"bodySize":40,"postData":{"mimeType":"application/json","text":"{\"symbol\": \"BTC\", \"amount\": 0.1}"}},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Content-Type","value":"application/json"}],"content":{"size":50,"mimeType":"application/json","text":"{\"success\": true, \"orderId\": \"ord_001\"}"},"redirectURL":"","headersSize":-1,"bodySize":50},"cache":{},"timings":{"send":1,"wait":70,"receive":9}}
]}}