Integrating SmartBinDB with Flask¶
Flask is synchronous by default. You can use SmartBinDB by running the
async coroutine via asyncio.run or by switching to Flask’s async views.
Sync wrapper¶
import asyncio
from flask import Flask, jsonify, abort
from smartbindb import SmartBinDB
app = Flask(__name__)
db = SmartBinDB()
def run(coro):
return asyncio.run(coro)
@app.get("/bin/<bin_value>")
def lookup(bin_value):
result = run(db.get_bin_info(bin_value))
if result["status"] != "SUCCESS":
abort(404, result["message"])
return jsonify(result["data"][0])
@app.get("/bank/<name>")
def bank(name):
return jsonify(run(db.get_bins_by_bank(name, limit=25)))
Async views (Flask 2+)¶
from flask import Flask, jsonify
from smartbindb import SmartBinDB
app = Flask(__name__)
db = SmartBinDB()
@app.get("/bin/<bin_value>")
async def lookup(bin_value):
return jsonify(await db.aget_bin_info(bin_value))