У меня есть API, созданный с использованием облачных функций GCP, я знаю, что он построен на Flask, однако само приложение не доступно пользователю.
В документации по тестированию для облачных функций GCP используется объект Mock
из unittest
, встроенный в Python.
Однако у меня есть декоратор аутентификации, который я могу использовать, и он определяет, есть ли соответствующий пароль в x-api-key
в заголовке.
"""Authentication for Cloud Functions."""
from functools import partial, wraps
from flask import request, abort
import config
def auth(func=None):
if func is None:
return partial(auth)
@wraps(func)
def wrap(*args, **kwargs):
if request.headers.get('x-api-key') and request.headers.get('x-api-key') == config.API_KEY:
return func(*args, **kwargs)
else:
abort(401)
return wrap
Затем я могу применить его к облачным функциям Google. Функции:
@auth
@log_func
def frontend_query(request):
request_json = request.get_json(silent=True)
# Do Something Else
Вы можете использовать mock
для создания request_json
, но как мне также получить поддельные данные заголовка в request.headers
?