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.
- 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.
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.
- 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
-
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.
- 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.