Created
April 30, 2025 06:37
-
-
Save bockor/cbf433ef785470b578037a749c629b7c to your computer and use it in GitHub Desktop.
playgarden for api - jwt
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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