Open NicolaiSchmid opened 3 years ago
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
My actions before raising this issue
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 therequest
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