from flask import jsonify, request, render_template, render_template_string, redirect, send_file, url_for, flash, \ get_flashed_messages from flask_login import login_required, current_user from werkzeug.utils import secure_filename from webtool import app, db, log, openapi, limiter, queue from webtool.lib.helpers import get_preview, error from backend.lib.exceptions import QueryParametersException, JobNotFoundException from backend.lib.queue import JobQueue from backend.lib.job import Job from backend.lib.dataset import DataSet from backend.lib.helpers import UserInput, call_api from backend.abstract.worker import BasicWorker api_ratelimit = limiter.shared_limit("3 per second", scope="api") API_SUCCESS = 200 API_FAIL = 404 csv.field_size_limit(1024 * 1024 * 1024) @app.route("/api/") @api_ratelimit def openapi_overview(): return jsonify({ "status": "The following API specifications are available from this server.", "data": { api_id: "http" + ( "s" if config.FlaskConfig.SERVER_HTTPS else "") + "://" + config.FlaskConfig.SERVER_NAME + "/api/spec/" + api_id + "/" for api_id in openapi.apis
import csv import backend from flask import jsonify, request, send_file, after_this_request from flask_login import login_required, current_user from webtool import app, db, log, openapi, limiter from webtool.lib.helpers import error from common.lib.exceptions import JobNotFoundException from common.lib.queue import JobQueue from common.lib.job import Job from common.lib.dataset import DataSet api_ratelimit = limiter.shared_limit("45 per minute", scope="api") API_SUCCESS = 200 API_FAIL = 404 csv.field_size_limit(1024 * 1024 * 1024) @app.route("/api/get-standalone-processors/") @api_ratelimit @openapi.endpoint("standalone") def get_standalone_processors(): """ Get processors available for standalone API requests :return: A JSON object, a list with processor IDs that may be used for the `/api/process/<processor>/` endpoint as keys and a `description` of what