Cloud Functionsでパスルーティングしてみる(Python)
結論こちらを参考にできました。
import flask
import werkzeug.datastructures
app = flask.Flask(__name__)
@app.route('/')
def root():
return 'index'
@app.route('/hello')
def hello():
return 'Hello World'
@app.route('/hello/<username>')
def hello_user(username):
return f'Hello, {username}'
def main(request):
with app.app_context():
headers = werkzeug.datastructures.Headers()
for key, value in request.headers.items():
headers.add(key, value)
with app.test_request_context(method=request.method, base_url=request.base_url, path=request.path, query_string=request.query_string, headers=headers, data=request.form):
try:
rv = app.preprocess_request()
if rv is None:
rv = app.dispatch_request()
except Exception as e:
rv = app.handle_user_exception(e)
response = app.make_response(rv)
return app.process_response(response)
$ curl https://asia-northeast1-my-project.cloudfunctions.net/flask
index
$ curl https://asia-northeast1-my-project.cloudfunctions.net/flask/hello
Hello World
$ curl https://asia-northeast1-my-project.cloudfunctions.net/flask/hello/hoge
Hello, hoge
FastAPIを使うものも見つけました。
こちらもパスルーティングに対応しています。
$ curl https://asia-northeast1-my-project.cloudfunctions.net/fastapi
{"Hello":"World"}
$ curl https://asia-northeast1-my-project.cloudfunctions.net/fastapi/items/123?q=apple
{"item_id":123,"q":"apple"}
ディスカッション
コメント一覧
まだ、コメントがありません