Metadata-Version: 2.1
Name: r2
Version: 0.3
Summary: Software 'r2' is designed to record and replay responses (to mock) from REST API services
Home-page: https://github.com/NexSabre/r2
Author: Nex Sabre
Author-email: nexsabre@protonmail.com
License: UNKNOWN
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown
Requires-Dist: requests (~=2.24.0)
Requires-Dist: Flask (~=1.1.2)
Requires-Dist: setuptools (~=49.2.0)
Requires-Dist: flask-cors (~=3.0.8)
Requires-Dist: dataclasses (~=0.6)
Requires-Dist: urllib3 (~=1.25.8)

# r2 (Record2Replay)
Record2Replay is simple tool to record your requests on specific target and later replay it to automate your daily tasks

__Note:__ This version is still Work In Progress. Record/Replay function should work with no problems, but it is lack of features. 

## TLDR;
```
# install
pip install r2

# record responses from another service
r2 record http://api.plos.org
```

Go to your browser and type: 

`localhost:5000/search?q=title:DNA`

in your home directory, all response will be saved at

`~/.r2/download/default/*`

```
# to replay packages 
r2 replay
```

__Note:__ Actual, `r2` support only a one packages at download directory. More will be added soon. 

## TODO
__Note:__ This is partly implemented with 0.2 version.

- Implement an option to parse arguments ex `http://127.0.0.1:5000/search?q=title:DNA`. Actual version will pass 
everything on the right side of the `?` and save a file under `search`.

- Add a support for more than one package

## Installation
You can install a `r2` software using a python package manager or build it from source code:

### from pip
`r2` is available thru `pip`, to install type `pip install r2`

### from source
Go into `src` directory of source, and type `python setup.py sdist bdist_wheel && cd dist && pip install r2*.whl` 


## Replay files
Replay files store base information about the response, from the service. 

Actual support:
- json response 

Future upgrade:
- raw response
- additional status codes
- additional information from headers

### Format change v0.1 to v0.2
Since version v0.2, `r2` presents a new format to store response information from the services. 
Before v0.2 all response was stored as a raw text in the file. Now, the Response is packed: 

_Example_:
- Before: 
```
{"test": "test_body"}
```

- Now:
```
{
"data_id": "test\endpoint", 
"actions": [
    {"arguments": {}, 
     "response": {
         "test": "test_body"}
     }]
}
```

This approach allow us to store different information for whole range of arguments deliver thru the URL.


