Skip to content

Instantly share code, notes, and snippets.

@bockor
Created April 30, 2025 06:37
Show Gist options
  • Save bockor/cbf433ef785470b578037a749c629b7c to your computer and use it in GitHub Desktop.
Save bockor/cbf433ef785470b578037a749c629b7c to your computer and use it in GitHub Desktop.
playgarden for api - jwt
# app.py
# https://stackoverflow.com/questions/74213961/how-create-endpoints-in-multiple-files
# https://flask.palletsprojects.com/en/stable/blueprints/
from flask import Flask, jsonify, request
from candy import candy_bp
from beer import beer_bp
from netz import netz_bp
app = Flask(__name__)
app.register_blueprint(candy_bp, url_prefix='/api')
app.register_blueprint(beer_bp, url_prefix='/api')
app.register_blueprint(netz_bp, url_prefix='/api')
@app.route('/')
def index():
return("<h3><b>hello ... html overhere !</b></h3>")
# netz.py
from flask import Flask, jsonify, request, Blueprint
from netz import *
netz_bp = Blueprint('netz_bp', __name__)
netz = [
{ 'id': 1, 'network': '1.0.0.0/8', 'comment': 'bla' },
{ 'id': 2, 'network': '2.0.0.0/8', 'comment': 'blabla' },
{ 'id': 3, 'network': '3.0.0.0/8', 'comment': 'blablabla' },
]
@netz_bp.route('/net/<int:param>/',methods=['GET'])
def get_net(param):
# https://www.geeksforgeeks.org/python-find-dictionary-matching-value-in-list/
res = next((sub for sub in netz if sub['id'] == param), None)
if res:
return jsonify({"result": res})
else:
return jsonify({"result": "Nothing here"}), 404
@netz_bp.route('/net/search-net',methods=['GET'])
def get_search_net():
network = request.args.get('network')
# https://www.geeksforgeeks.org/python-find-dictionary-matching-value-in-list/
res = next((sub for sub in netz if sub['network'] == network), None)
if res:
return jsonify({"result": res})
else:
return jsonify({"result": "Nothing here"}), 404
@netz_bp.route('/netz',methods=['GET'])
def get_netz():
return jsonify(netz)
@netz_bp.route('/netz', methods=['POST'])
def add_netz():
"""
curl -X POST -H "Content-Type: application/json" -d '{
"id": 4,
"network": '4.0.0.0/8',
"comment": "bla...."
}' http://localhost:5000/api/netz
"""
netz.append(request.get_json())
return '', 204
# candy.py
from flask import Flask, jsonify, request, Blueprint
candy_bp = Blueprint('candy_bp', __name__)
candy = [
{ 'name': 'Mars', 'price': 0.59 },
{ 'name': 'Milky Way', 'price': 0.63 }
]
@candy_bp.route('/candy',methods=['GET'])
def get_candy():
return jsonify(candy)
@candy_bp.route('/candy', methods=['POST'])
def add_candy():
"""
curl -X POST -H "Content-Type: application/json" -d '{
"name": "Leo",
"price": 0.42
}' http://localhost:5000/api/candy
"""
candy.append(request.get_json())
return '', 204
# beer.py
from flask import Flask, jsonify, request, Blueprint
from beerz import *
beer_bp = Blueprint('beer_bp', __name__)
beer = [
{ 'name': 'Maes', 'price': 0.59 },
{ 'name': 'Rodenbach', 'price': 0.63 }
]
b = Beer()
@beer_bp.route('/beer',methods=['GET'])
def get_beer():
return jsonify(beer)
@beer_bp.route('/beer/kinds',methods=['GET'])
def get_kinds():
return jsonify({"result": b.kinds})
@beer_bp.route('/beer', methods=['POST'])
def add_beer():
"""
curl -X POST -H "Content-Type: application/json" -d '{
"name": "Ardwen",
"price": 1.03
}' http://localhost:5000/api/beer
"""
beer.append(request.get_json())
return '', 204
# beerz.py
class Beer:
kinds = ['lager', 'trappist', 'ipa', 'ale']
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment