Metadata-Version: 2.1
Name: flask_request_id_header_middleware
Version: 0.0.1
Summary: Python Flask Middleware to log and set Request ID in the HTTP header
Author: Shatrugna Rao Korukanti
Author-email: shatrugna_korukanti@tecnics.com
License: MIT
Classifier: Development Status :: 3 - Alpha
Classifier: Framework :: Flask
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: Flask

## Flask RequestID Middleware
A Flask middleware to log and set Request ID in the HTTP header.

### Overview
This project provides a Flask middleware that ensures a unique Request ID is generated and logged for each incoming request. The Request ID is also included in the response back to the client.

#### Features
Generates a unique Request ID for each incoming request
Logs the Request ID using a log filter
Includes the Request ID in the response back to the client
Installation
To install the middleware, run the following command:

```bash
pip install flask-request-id-header-middleware
```

#### Usage
To use the middleware in your Flask application, simply import and initialize it:

```python
from flask import Flask
from flask_request_id_header_middleware import RequestID

app = Flask(__name__)
RequestID(app)
```

#### Configuration

The middleware can be configured using the following settings:

- `REQUEST_ID_UNIQUE_VALUE_PREFIX`: a prefix that indicates a request ID should be considered unique

#### Logging

The middleware uses a log filter to inject the current request ID into log records. To use the log filter, add it to your logging configuration:

```python
from flask_request_id_header_middleware.log_filter import RequestIDLogFilter

logging.basicConfig()
logger = logging.getLogger()
logger.addFilter(RequestIDLogFilter())
```


#### Example
Here is an example of how to use the middleware in a Flask application:

```python
from flask import Flask
from flask_request_id_header_middleware import RequestID

app = Flask(__name__)
RequestID(app)

@app.route("/")
def index():
    return "Hello, World!"

if __name__ == "__main__":
    app.run()
```

In this example, the middleware will generate a unique Request ID for each incoming request and log it using the log filter. The Request ID will also be included in the response back to the client.
