mirror of
https://github.com/LukeHagar/connexion.git
synced 2025-12-06 12:27:45 +00:00
44 lines
1.0 KiB
Python
Executable File
44 lines
1.0 KiB
Python
Executable File
import logging
|
|
from pathlib import Path
|
|
|
|
import connexion
|
|
from connexion.resolver import MethodViewResolver
|
|
|
|
logging.basicConfig(level=logging.INFO)
|
|
|
|
zoo = {
|
|
1: {
|
|
"id": 1,
|
|
"name": "giraffe",
|
|
"tags": ["africa", "yellow", "hoofs", "herbivore", "long neck"],
|
|
},
|
|
2: {
|
|
"id": 2,
|
|
"name": "lion",
|
|
"tags": ["africa", "yellow", "paws", "carnivore", "mane"],
|
|
},
|
|
}
|
|
|
|
|
|
app = connexion.FlaskApp(__name__, specification_dir="spec/")
|
|
|
|
options = {"swagger_ui": True}
|
|
app.add_api(
|
|
"openapi.yaml",
|
|
options=options,
|
|
arguments={"title": "MethodViewResolver Example"},
|
|
resolver=MethodViewResolver(
|
|
"api",
|
|
# class params are entirely optional
|
|
# they allow to inject dependencies top down
|
|
# so that the app can be wired, in the entrypoint
|
|
class_arguments={"PetsView": {"kwargs": {"pets": zoo}}},
|
|
),
|
|
strict_validation=True,
|
|
validate_responses=True,
|
|
)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
app.run(f"{Path(__file__).stem}:app", port=8080)
|