Pass the path route argument to the handler
My actions before raising this issue
- [x] Followed the troubleshooting guide
- [x] Read/searched the docs
- [x] Searched past issues
I'd like to suggest passing the path argument to the handler as a second argument, as it would prove quite valuable to my application
I'm not really familiar with Flask however and I might be able to access the argument already via a property on the request object. If that's the case, please let me know!
Context
The function I'm developing returns a list of attributes for a username. I think the natural implementation would be to make a GET request to /username. It would be great if I could reuse it
The path should already be on the request object, request.path
https://flask.palletsprojects.com/en/1.1.x/api/#incoming-request-data
For example:
➜ test-flask-tmpl-32 curl localhost:8080/here/i/am
/here/i/am
and my handler looks like
from flask import request
def handle(req):
"""handle a request to the function
Args:
req (str): request body
"""
return request.path
Yes, but it isn't parsed.
What do you mean by parsed?
Well, if the route is /username, then the value of path (the function argument, not the property on request) will only be username and not /username
Perhaps you could share anymore concrete example of what you want to do? Even if we passed the path as a second value, it would just be the same value as request.path.
What additional parsing should it do? Perhaps there is an alternative template for your use case or you can simply fork the template to add your additions? You can specify a fork or a template pretty easily in the stack yaml https://docs.openfaas.com/reference/yaml/#templates
@NicolaiSchmid i think parsing the path is outside the scope of this template. The path is easily accessible, as shown above.
I would recommend possibly forking and adding the required parsing into a custom template