Il y avait une scène où je voulais obtenir le document API swagger.json sans démarrer le serveur avec Flask-RESTX.
Tout d'abord, l'exemple de code de l'application Flask s'affiche.
from flask import Flask
from flask_restx import Api, Resource, fields
def create_app():
app = Flask(__name__)
api = Api(app)
@api.route("/sample")
class SampleResource(Resource):
@api.marshal_with(api.model("sample model", {
"name": fields.String,
"age": fields.Integer,
}))
def get(self):
raise NotImplementedError()
return app
Si vous le démarrez avec flask run
, vous pouvez obtenir swagger.json en accédant à http://127.0.0.1:5000/swagger.json.
Cependant, cette méthode prend du temps pour démarrer le serveur de débogage afin d'obtenir swagger.json. Il y a des difficultés dans les cas où vous souhaitez acquérir et partager automatiquement swagger.json en utilisant CI etc. ..
Par conséquent, si vous préparez et exécutez le script suivant, vous pouvez récupérer swagger.json sans démarrer le serveur Flask.
import json
import sys
from app import create_app
app = create_app()
json.dump(
app.test_client().get("/swagger.json").get_json(),
sys.stdout,
)
J'utilise le client de test fourni avec Flask.
Ce script produit une sortie standard, mais vous pouvez obtenir un fichier JSON en redirigeant vers un fichier.
Recommended Posts