-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path03_flaskapi.py
More file actions
25 lines (20 loc) · 886 Bytes
/
03_flaskapi.py
File metadata and controls
25 lines (20 loc) · 886 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
from flask import Flask, request, jsonify
import sqlite3
import json
app = Flask(__name__)
def search_endpoint(query):
conn = sqlite3.connect("api_schema.db")
cursor = conn.cursor()
cursor.execute("SELECT path, methods, description, request_body, responses FROM api_endpoints WHERE path LIKE ?", (f"%{query}%",))
results = cursor.fetchall()
conn.close()
return [{"path": path, "methods": methods, "description": description,
"request_body": json.loads(request_body) if request_body != "None" else None,
"responses": json.loads(responses)} for path, methods, description, request_body, responses in results]
@app.route('/query', methods=['GET'])
def query_api():
query = request.args.get("query", "")
results = search_endpoint(query)
return jsonify(results)
if __name__ == "__main__":
app.run(debug=True, port=5086)