Hoe maak je een simpele api in Python

Een api (Application Programming Interface) is een software tussenlaag, interface, waarmee je kunt communiceren vanuit je applicatie. Het stelt daarmee 2 applicaties in staat om berichten met elkaar uit te wisselen op een gestandaardiseerde manier.

In Python kun je ook een simpele api maken om een beter beeld te krijgen hoe dit precies werkt. In dit voorbeeld gebruiken we een eenvoudig csv bestand met data over Koningen en Koninginnen in Engeland die je middels een api kunt opvragen door het jaartal mee te geven in de endpoint van de api.

De api is hier gewoon een simpele url in de browser waarmee je specifieke regels op kunt halen uit de database op basis van een parameter die je meegeeft in de url. De parameter is hier een ‘jaar’ die de api gebruikt om de regels te filteren en het resultaat in de browser te tonen. In essentie is dit je specifieke endpoint van de api.

import flask
from flask import request
import pandas as pd
from datetime import datetime as dt

data = pd.read_csv('data.csv', names=['s', 'e', 'm']).set_index('m')

series = pd.Series(index=range(data.s.min(), dt.now().year), dtype = 'object')
for m in data.index:
    series.loc[data.loc[m].s:data.loc[m].e] = m


app = flask.Flask(__name__)


@app.route('/', methods=['GET'])
def home():
    year = int(request.args['year'])
    try:
        return series.loc[year]
    except KeyError:
        return f'Invalid input ({series.index.min()} - {series.index.max()})'

if __name__ == '__main__':
    app.run()