Skip to content

Latest commit

 

History

History
50 lines (39 loc) · 2.28 KB

ReadMe.md

File metadata and controls

50 lines (39 loc) · 2.28 KB

Proxiee

Proxiee is a straightforward Flask-based proxy server. Clients can request Proxiee to call a specified API URL along with other req uired parameters. Proxiee then executes the request and relays the response back to the user.

Features

  • Supports popular methods - GET, PUT, DELETE, POST.
  • Supports headers and parameters. You can add certain permanent headers on top using the configuration file. For example, this can include authorization keys for certain API.
  • Logs the server's health by logging the API called, time Proxiee took in complete processing (includes the parent api time), the IP of the Client, method etc. into a new log file every midnight along with an analysis tool for log.
  • Includes a configuration file where permissible APIs and username passwords can be specified, controlling access to Proxiee's functionality.

Configuration Setup

Configure myconfig file as follows

[allowed_apis]
api.endpoints.youwanttoaccess = 1

[users]
username = password

[allowed_ips]
127.0.0.1 = 1

[headers_for_api.endpoint.com]
header1 = value
header2 = value
  • allowed_apis are the APIs that can be accessed by the user.
  • users are the usernames and passwords that can be used to access the Proxy.
  • allowed_ips are the IPs that can call Proxy.
  • headers_for_api.endpoint.com are the headers that will be added to the request when calling api.endpoint.com.

Setup

  • Create a virtual enviornment using python -m venv .venv
  • Activate the virtual enviornment using source .venv/bin/activate for linux and .\.venv\Scripts\activate for windows.
  • Install the dependecies using pip install -r requirements.txt
  • run waitress-server --host={yourHost} --port={yourPort} main:app to start the server

Making a Request

  • The request should be made at http://{yourHost}:{yourPort}/proxy with the following parameters

    • 'api_url' : The API URL you want to access.
  • and the following headers

    • 'username' : The username you have configured in the myconfig.ini file.
    • 'password' : The password you have configured in the myconfig.ini file.

Troubleshooting

  • Make sure the python is correctly located in the .venv/pyvenv.cfg
  • Make sure python is installed and is in the PATH.
  • Make sure to configure myconfig.ini as per your requirements.