[PYTHON] Obtenez swagger.json avec Flask-RESTX (Flask-RESTPlus) sans démarrer le serveur

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

Obtenez swagger.json avec Flask-RESTX (Flask-RESTPlus) sans démarrer le serveur
Commerce du système à partir de Python3: obtenez le dernier code de programme
Obtenez la météo avec les requêtes Python
Obtenez la météo avec les requêtes Python 2
Obtenez la largeur du div côté serveur avec Selenium + PhantomJS + Python
[Python] Récupère le nom de la variable avec str
Premiers pas avec l'outil de documentation Sphinx
Obtenez des vacances avec l'API Google Agenda
Connectez-vous à un serveur distant avec SSH
[Python] Récupérez les fichiers dans le dossier avec Python
Le moyen le plus simple de démarrer avec Django
Obtenez les dernières informations AMI avec l'AWS CLI
Conseils de dessin avec matplotlib côté serveur
Obtenez les dernières informations AMI avec l'AWS CLI
Obtenez swagger.json avec Flask-RESTX (Flask-RESTPlus) sans démarrer le serveur
Obtenez l'identifiant d'un GPU avec une faible utilisation de la mémoire
[Python x Zapier] Obtenez des informations d'alerte et notifiez avec Slack
Obtenir des informations avec l'API Zabbix
Obtenez des informations sur l'alambic avec Python
PhytoMine-I a essayé d'obtenir les informations génétiques de la plante avec Python
Obtenez la dernière version du noyau Linux avec ArchLinux
GRPC commençant par le serveur Go et le client Dart
[CGI] Exécutez le programme Python du serveur avec Vue.js + axios et obtenez les données de sortie
Comment démarrer du code écrit en Atom avec une seule commande sans démarrer Teminal