import json import pathlib from typing import Any, cast import yaml from fastapi import FastAPI def dump_schema(api: FastAPI, *, filepath: pathlib.Path) -> None: with filepath.open("w+") as fp: yaml.dump(json.loads(json.dumps(api.openapi())), stream=fp, sort_keys=False) def check_schema(api: FastAPI, *, filepath: pathlib.Path) -> bool: with filepath.open() as fp: return cast(dict[str, Any], yaml.safe_load(fp)) == api.openapi()