Недавно у меня есть проблема при создании API с помощью колбы.
Основной синтаксис для создания API с использованием Flask-RestPlus:
from flask import Flask app = Flask(__name__) from flask_restplus import Api api = Api() api.init_app(app)
Однако этот базовый синтаксис переопределят маршрут индекса на вашей веб-странице. Итак, чтобы исправить это, План
следует импортировать.
from flask import Flask, Blueprint from flask_restplus import Api app = Flask(__name__) blueprint = Blueprint('api', __name__, url_prefix='/v1') api = Api(blueprint, title="Enrollment API", version='v0.1', description='Enrollment API for CRUD operation' ) app.register_blueprint(blueprint)
Отсюда API Base URL больше не переоценивает маршрут индекса. Теперь давайте добавим API, чтобы получить пользовательские данные, потянув JSonify и импортируя модель.
models.py
import flask from application import db from werkzeug.security import generate_password_hash, check_password_hash class User(db.Document): user_id = db.IntField(unique=True) first_name = db.StringField(max_length=50) last_name = db.StringField(max_length=50) email = db.StringField(max_length=30, unique=True) password = db.StringField() def set_password(self, password): self.password = generate_password_hash(password) def get_password(self, password): return check_password_hash(self.password, password)
route.py
from application.models import User from flask import jsonify @api.route('/api','/api/') class GetAndPost(Resource): ''' Get All ''' def get(self): return jsonify(User.objects.all())
Из кода выше, теперь API может быть доступ через Localhost: 5000/V1/API
Отказ API вернет всех пользователей в JSONFormat
PS: Werkzeug нужно понизить до 0,16.1, чтобы использовать Flake_RestPlus Установка PIP.16.1
Дополнительная информация: https://github.com/noirbizarre/flask-restplus/issues/286
Оригинал: “https://dev.to/flyingduck92/changing-flask-restplus-base-url-1g6k”