2 changed files with 138 additions and 0 deletions
@ -0,0 +1,70 @@ |
|||||
|
from flask import Flask, jsonify |
||||
|
|
||||
|
app = Flask(__name__) |
||||
|
|
||||
|
@app.route("/") |
||||
|
def index(): |
||||
|
return """ |
||||
|
<ul> |
||||
|
<li>/secti/A/B</li> |
||||
|
<li>/odecti/A/B</li> |
||||
|
<li>/vynasov/A/B</li> |
||||
|
<li>/vydel/A/B</li> |
||||
|
<li>/mocnina/zaklad/exponent</li> |
||||
|
</ul> |
||||
|
""" |
||||
|
|
||||
|
@app.route("/secti/<int:a>/<int:b>") |
||||
|
def add(a,b): |
||||
|
vysledek = a+b |
||||
|
return jsonify({ |
||||
|
"operace":"soucet", |
||||
|
"vstup":{"a":a,"b":b}, |
||||
|
"vysledek":vysledek |
||||
|
}) |
||||
|
|
||||
|
@app.route("/odecti/<int:a>/<int:b>") |
||||
|
def subtract(a,b): |
||||
|
vysledek = a-b |
||||
|
return jsonify({ |
||||
|
"operace":"odčítání", |
||||
|
"vstup":{"a":a,"b":b}, |
||||
|
"vysledek":vysledek |
||||
|
}) |
||||
|
|
||||
|
@app.route("/vynasob/<int:a>/<int:b>") |
||||
|
def multiply(a,b): |
||||
|
vysledek = a*b |
||||
|
return jsonify({ |
||||
|
"operace":"násobení", |
||||
|
"vstup":{"a":a,"b":b}, |
||||
|
"vysledek":vysledek |
||||
|
}) |
||||
|
|
||||
|
@app.route("/vydel/<int:a>/<int:b>") |
||||
|
def divide(a,b): |
||||
|
if b == 0: |
||||
|
return jsonify({ |
||||
|
"operace":"dělení", |
||||
|
"vstup":{"a":a,"b":b}, |
||||
|
"chyba":"Dělení nulou není povolené" |
||||
|
}), 400 #HTTP 400 je Bad Request |
||||
|
vysledek = a/b |
||||
|
return jsonify({ |
||||
|
"operace":"dělení", |
||||
|
"vstup":{"a":a,"b":b}, |
||||
|
"vysledek":vysledek |
||||
|
}) |
||||
|
|
||||
|
@app.route("/mocnina/<int:zaklad>/<int:exponent>") |
||||
|
def mocnina(zaklad,exponent): |
||||
|
vysledek = zaklad**exponent |
||||
|
return jsonify({ |
||||
|
"operace":"mocnina", |
||||
|
"vstup":{"základ":zaklad,"exponent":exponent}, |
||||
|
"vysledek":vysledek |
||||
|
}) |
||||
|
|
||||
|
if __name__ == "__main__": |
||||
|
print("Server beží na http://localhost:8080") |
||||
|
app.run(host="0.0.0.0",port=8080,debug=True) |
||||
@ -0,0 +1,68 @@ |
|||||
|
from flask import Flask, jsonify |
||||
|
import random |
||||
|
|
||||
|
app = Flask(__name__) |
||||
|
|
||||
|
# AltGR + F|G = [|] |
||||
|
# AltGR + B|N = {|} |
||||
|
hrdinove = [ |
||||
|
#{"jmeno":"","rasa":"","hp":100,"level":20} |
||||
|
{"jmeno":"Aragorn","rasa":"clovek","hp":100,"level":20}, |
||||
|
{"jmeno":"Legolas","rasa":"elf","hp":80,"level":18}, |
||||
|
{"jmeno":"Gimli","rasa":"trpaslik","hp":120,"level":21}, |
||||
|
{"jmeno":"Frodo","rasa":"hobbit","hp":40,"level":5}, |
||||
|
{"jmeno":"Gandalf","rasa":"clovek","hp":150,"level":50}, |
||||
|
{"jmeno":"Sauron","rasa":"demon","hp":500,"level":100} |
||||
|
] |
||||
|
|
||||
|
@app.route("/") |
||||
|
def index(): |
||||
|
"""Hlavní stránka s rozcesníkem""" |
||||
|
# AltGR + ,|. = <|> |
||||
|
return """ |
||||
|
<h1>RPG Heroes API Server </h1> |
||||
|
<ul> |
||||
|
<li>Všichni hrdinové: /api/heroes</li> |
||||
|
<li>Náhodný hrdina: /api/heroes/random</li> |
||||
|
<li>Konkretní hrdnina: /api/heroes/ČÍSLO</li> |
||||
|
<li>Filtrovat podle rasy (např.elf): /api/heroes/filter/elf</li> |
||||
|
</ul> |
||||
|
""" |
||||
|
|
||||
|
@app.route("/api/heroes") |
||||
|
def get_all_heroes(): |
||||
|
"""Vrátí celý seznam hrdinů jako JSON""" |
||||
|
return jsonify(hrdinove) |
||||
|
|
||||
|
@app.route("/api/heroes/random") |
||||
|
def get_random_hero(): |
||||
|
"""Vrátí náhodného hrdinu jako JSON""" |
||||
|
nahodny = random.choice(hrdinove) |
||||
|
return jsonify(nahodny) |
||||
|
|
||||
|
@app.route("/api/heroes/<int:hero_id>") |
||||
|
def get_hero_by_id(hero_id): |
||||
|
"""Vrátí hrdinu dle jeho indexu v seznamu poli(array)""" |
||||
|
if 0 <= hero_id < len(hrdinove): |
||||
|
return jsonify(hrdinove[hero_id]) |
||||
|
else: |
||||
|
return jsonify({"chyba":"Hrdina s tímto ID neexistuje"}), 404 |
||||
|
|
||||
|
@app.route("/api/heroes/filter/<string:rasa>") |
||||
|
def filter_heroes_by_race(rasa): |
||||
|
"""Vrátí hrdiny, kteří odpovídají zadané rase""" |
||||
|
vysledek = [] |
||||
|
for hrdina in hrdinove: |
||||
|
if hrdina["rasa"].lower() == rasa.lower(): |
||||
|
vysledek.append(hrdina) |
||||
|
if not vysledek: |
||||
|
return jsonify({"chyba":f"Žádný hrnina rasy '{rasa}'"}) |
||||
|
return jsonify(vysledek) |
||||
|
|
||||
|
|
||||
|
|
||||
|
if __name__ == "__main__": |
||||
|
print("--- HERO SERVER NASTARTOVÁN ---") |
||||
|
print("Server běží na http://localhost:8080") |
||||
|
print("Vypnout server -> CTRL + C") |
||||
|
app.run(host="0.0.0.0",port=8080,debug=True) |
||||
Loading…
Reference in new issue