Get routes working

This commit is contained in:
Chris Diesch 2025-04-06 17:31:14 -06:00
parent 4b541b62f0
commit b069331a1e
4 changed files with 24 additions and 10 deletions

View File

@ -2,7 +2,12 @@ from flask import current_app
from flask_restx import Api, fields, apidoc, Model, Namespace, Resource from flask_restx import Api, fields, apidoc, Model, Namespace, Resource
from flask_restx.reqparse import RequestParser from flask_restx.reqparse import RequestParser
from app.mre_module import compute_mre from app.mre_module import compute_mre
from . import namespace
namespace = Namespace(
'mre',
description='API endpoints for MRE calculations.'
)
MRE_request_parser = RequestParser() MRE_request_parser = RequestParser()
MRE_request_parser.add_argument('consumer_fico', MRE_request_parser.add_argument('consumer_fico',
@ -18,7 +23,7 @@ MRE_request_parser.add_argument('down_payment',
type=float, type=float,
help='The down payment (as a percentage) for purchasing the home (float between [0, 1]).') help='The down payment (as a percentage) for purchasing the home (float between [0, 1]).')
@namespace.route('compute_mre_from_home_price') @namespace.route('/compute_mre')
@namespace.doc(params={ @namespace.doc(params={
'consumer_fico': 'The consumer\'s fico score (int).', 'consumer_fico': 'The consumer\'s fico score (int).',
'home_price': 'The price of the home (float).', 'home_price': 'The price of the home (float).',

View File

@ -1,6 +0,0 @@
from flask_restx import Namespace
namespace = Namespace(
'mre',
description='API endpoints for MRE calculations.'
)

View File

@ -1,4 +1,4 @@
from flask import Flask, g, request from flask import Flask, g, request, url_for
import time import time
import os import os
from app.MRE import blueprint as mre_blueprint from app.MRE import blueprint as mre_blueprint
@ -45,4 +45,19 @@ def create_app(app_name: str='MRE') -> Flask:
app.logger.info(f'HTTP request completed (method={request.method}, path={request.path}, request_time={request_time}, status_code={response.status_code}).') app.logger.info(f'HTTP request completed (method={request.method}, path={request.path}, request_time={request_time}, status_code={response.status_code}).')
return response return response
def has_no_empty_params(rule):
defaults = rule.defaults if rule.defaults is not None else ()
arguments = rule.arguments if rule.arguments is not None else ()
return len(defaults) >= len(arguments)
@app.route('/ping')
def ping():
links = []
for rule in app.url_map.iter_rules():
if "GET" in rule.methods and has_no_empty_params(rule):
url = url_for(rule.endpoint, **(rule.defaults or {}))
links.append(url)
app.logger.info(f'Endpoint: {url}')
return {'links': links}, 200
return app return app

2
run.py
View File

@ -3,4 +3,4 @@ from app import create_app
app = create_app() app = create_app()
if __name__ == '__main__': if __name__ == '__main__':
app.run(ssl_context='adhoc') app.run(port=8080, host='0.0.0.0')