autorequests icon indicating copy to clipboard operation
autorequests copied to clipboard

Generate Python code to recreate a request from your browser.

AutoRequests

Automatically create a simple Python API wrapper from request data generated by your browser
GitHub Workflow Status

📺 Demo

Demo

💼 Example Use Cases

  • Creating a foundation for an API wrapper
  • Recreating a request outside the browser
  • Testing what cookies or headers are required for a server to understand your request

✂️ How to Copy

  1. Inspect Element
  2. Go to Network tab
  3. Find web request
  4. Right-Click
  5. Copy
  6. Choose one of the following:
    1. Powershell
    2. Node.js fetch

📦 Installation

install the package with pip

$ pip install autorequests

or download the latest development build from GitHub

$ pip install -U git+https://github.com/Hexiro/autorequests

🖥️ Command Line

$ autorequests --help

directory options

  -i, --input           Input Directory
  -o, --output          Output Directory

generation options

  --return-text         Makes the generated method's responses return .text instead of .json()
  --no-headers          Removes all headers from the operation
  --no-cookies          Removes all cookies from the operation
  --parameters          Replaces hardcoded params, json, data, etc with parameters that have default values

🚩 Known Issues

  • Method names are parsed from the url, but if the URL doesn't have any paths with a valid method name, an invalid method name will be used.
  • Sometimes when copying from the browser, important headers aren't included which causes the resulting API wrapper to fail requests.
  • Parsing multipart/form-data when copying with the powershell mode isn't supported

🐞 Contributing

see CONTRIBUTING.md

📅 # TODO

  • better unit test coverage
  • more cli options
  • better cli output
  • better input files
  • AST / better code generation