-
Bjarke Madsen authoredBjarke Madsen authored
default.py 1.49 KiB
"""
Default Endpoints
=========================
.. contents:: :local:
/version
---------------------
.. autofunction:: compendium_v2.routes.default.version
"""
import pkg_resources
from flask import Blueprint, jsonify, render_template
from compendium_v2.routes import common
routes = Blueprint('compendium-v2-default', __name__)
API_VERSION = '0.1'
VERSION_SCHEMA = {
'$schema': 'http://json-schema.org/draft-07/schema#',
'type': 'object',
'properties': {
'api': {
'type': 'string',
'pattern': r'\d+\.\d+'
},
'module': {
'type': 'string',
'pattern': r'\d+\.\d+'
}
},
'required': ['api', 'module'],
'additionalProperties': False
}
@routes.after_request
def after_request(resp):
return common.after_request(resp)
@routes.route('/', defaults={'path': ''}, methods=['GET'])
@routes.route('/<path:path>', methods=['GET'])
def index(path):
# https://flask.palletsprojects.com/en/2.0.x/patterns/singlepageapplications/
return render_template('index.html')
@routes.route('/version', methods=['GET', 'POST'])
@common.require_accepts_json
def version():
"""
handler for /version requests
response will be formatted as:
.. asjson::
compendium_v2.routes.default.VERSION_SCHEMA
:return:
"""
version_params = {
'api': API_VERSION,
'module':
pkg_resources.get_distribution('compendium-v2').version
}
return jsonify(version_params)