Skip to content

Commit e882329

Browse files
committed
replace Flask Blueprint with FastAPI router
1 parent fb41b19 commit e882329

2 files changed

Lines changed: 10 additions & 15 deletions

File tree

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,16 @@
1-
from flask import Blueprint, request, jsonify
1+
import fastapi
22

3-
from semra.web.autocomplete import ConceptsTrie
3+
from semra.web.autocomplete import ConceptsTrie, Entry
44

5-
auto_blueprint = Blueprint("autocomplete", __name__, url_prefix="/autocomplete")
5+
auto_router = fastapi.APIRouter(prefix="/autocomplete")
66

77

88
# Initialize the autocomplete trie
99
trie = ConceptsTrie.from_graph_db()
1010

1111

12-
@auto_blueprint.route("/search", methods=["GET"])
13-
def autocomplete_search():
12+
@auto_router.get("/search", response_model=list[Entry])
13+
def autocomplete_search(prefix: str, top_n: int = 100):
1414
"""Get the autocomplete suggestions for a given prefix."""
15-
prefix = request.args.get("prefix")
16-
top_n = min(int(request.args.get("top_n", 100)), 100)
17-
18-
return jsonify(
19-
trie.case_insensitive_search(prefix, top_n=top_n)
20-
)
15+
top_n = min(top_n, 100)
16+
return trie.case_insensitive_search(prefix, top_n=top_n)

src/semra/wsgi.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,17 +80,16 @@ def get_app(
8080
Bootstrap5(flask_app)
8181

8282
flask_app.register_blueprint(flask_blueprint)
83-
if add_autocomplete:
84-
from semra.web.autocomplete.autocomplete_blueprint import auto_blueprint
85-
86-
flask_app.register_blueprint(auto_blueprint)
8783

8884
fastapi_app = fastapi.FastAPI(
8985
title="Semantic Reasoning Assembler",
9086
description="A web app to access a SeMRA Neo4j database",
9187
)
9288
fastapi_app.state = state # type:ignore
9389
fastapi_app.include_router(api_router)
90+
if add_autocomplete:
91+
from semra.web.autocomplete.autocomplete_blueprint import auto_router
92+
fastapi_app.include_router(auto_router)
9493
fastapi_app.mount("/", WSGIMiddleware(flask_app))
9594

9695
if return_flask:

0 commit comments

Comments
 (0)