Jeroboam¶
La classe d’application principale.
Jeroboam¶
class Jeroboam(Flask)
Une sous-classe Flask qui ajoute l’analyse des requêtes, la validation des réponses et la documentation OpenAPI.
Constructeur¶
Jeroboam(*args, **kwargs)
Prend les mêmes paramètres que Flask. Voir la documentation Flask pour plus de détails.
À l’initialisation, Jeroboam charge sa configuration depuis JeroboamConfig (qui lit les variables d’environnement) et la fusionne dans app.config. Les paramètres spécifiques à Jeroboam se configurent via app.config après la construction :
JEROBOAM_REGISTER_OPENAPI(bool) : Enregistrer les endpoints OpenAPI. Défaut :TrueJEROBOAM_REGISTER_ERROR_HANDLERS(bool) : Enregistrer les gestionnaires d’erreurs de validation. Défaut :TrueJEROBOAM_OPENAPI_URL(str) : Chemin vers la documentation interactive. Défaut :/docsJEROBOAM_TITLE(str) : Titre de l’API dans le schéma OpenAPI. Défaut :NoneJEROBOAM_VERSION(str) : Version de l’API. Défaut :0.1.0JEROBOAM_DESCRIPTION(str) : Description de l’API. Défaut :None
Méthodes¶
route¶
def route(
rule: str,
**options
) -> Callable
Enregistre une fonction de vue pour une règle d’URL donnée. Fonctionne comme le décorateur route() de Flask mais ajoute la validation requête/réponse.
Exemple :
@app.route("/items", methods=["GET"])
def list_items():
return [{"id": 1, "name": "Item 1"}]
get, post, put, patch, delete, options, head¶
def get(rule: str, **options) -> Callable
def post(rule: str, **options) -> Callable
def put(rule: str, **options) -> Callable
def patch(rule: str, **options) -> Callable
def delete(rule: str, **options) -> Callable
def options(rule: str, **options) -> Callable
def head(rule: str, **options) -> Callable
Raccourcis pour les méthodes HTTP. Chacun fonctionne comme les décorateurs de méthode de Flask mais avec validation.
Exemple :
@app.get("/wines/<int:wine_id>")
def get_wine(wine_id: int):
return {"id": wine_id}
@app.post("/wines")
def create_wine(name: str, vintage: int):
return {"name": name, "vintage": vintage}
add_url_rule¶
def add_url_rule(
rule: str,
endpoint: str = None,
view_func: Callable = None,
**options
) -> None
Enregistre une règle d’URL avec une fonction de vue. Fonctionne comme la méthode add_url_rule() de Flask.
Propriétés¶
jeroboam_config¶
@property
def jeroboam_config(self) -> dict
Retourne la configuration spécifique à Jeroboam.
Blueprint¶
class Blueprint(Flask.Blueprint)
Une sous-classe de Blueprint qui ajoute l’analyse des requêtes et la validation des réponses.
Fonctionne exactement comme Jeroboam mais pour organiser les routes en modules. Utilisez blueprint.route(), blueprint.get(), etc. de la même façon que Jeroboam.
Exemple :
from flask_jeroboam import Blueprint
wines_bp = Blueprint("wines", __name__)
@wines_bp.get("/wines")
def list_wines():
return []
app.register_blueprint(wines_bp)