Files
2026-07-13 13:22:34 +08:00

31 lines
1.1 KiB
Python

from mlflow.exceptions import MlflowException
from mlflow.protos.databricks_pb2 import INVALID_PARAMETER_VALUE
def _validate_content_type(flask_request, allowed_content_types: list[str]):
"""
Validates that the request content type is one of the allowed content types.
Args:
flask_request: Flask request object (flask.request)
allowed_content_types: A list of allowed content types
"""
if flask_request.method not in ["POST", "PUT"]:
return
if flask_request.content_type is None:
raise MlflowException(
message="Bad Request. Content-Type header is missing.",
error_code=INVALID_PARAMETER_VALUE,
)
# Remove any parameters e.g. "application/json; charset=utf-8" -> "application/json"
content_type = flask_request.content_type.split(";")[0]
if content_type not in allowed_content_types:
message = f"Bad Request. Content-Type must be one of {allowed_content_types}."
raise MlflowException(
message=message,
error_code=INVALID_PARAMETER_VALUE,
)