REST‑API achter Apache
in bash # pip install flask
in python: nano app.py
from flask import Flask, jsonify
app = Flask(__name__)
PRODUCTEN = [
{"id": 1, "naam": "Laptop", "prijs": 899},
{"id": 2, "naam": "Muis", "prijs": 25}
]
@app.get("/api/producten")
def lijst_producten():
return jsonify(PRODUCTEN)
@app.get("/api/producten/<int:pid>")
def één_product(pid):
for p in PRODUCTEN:
if p["id"] == pid:
return jsonify(p)
return jsonify({"fout": "Niet gevonden"}), 404
if __name__ == "__main__":
app.run(host="127.0.0.1", port=5000)
Apache als reverse proxy
in je virtuele host:
<VirtualHost *:80>
ServerName api.example.com
ProxyPreserveHost On
ProxyPass /api/ http://127.0.0.1:5000/api/
ProxyPassReverse /api/ http://127.0.0.1:5000/api/
</VirtualHost>
Modules nodig: mod_proxy, mod_proxy_http.
client die het zichtbaar maakt met curl in bash:
curl http://api.example.com/api/producten
curl http://api.example.com/api/producten/1
Of in je browser: http://api.example.com/api/producten