Getting arenas by name

An arena can be requested by name at this endpoint. By utilizing a query condition, known as a filter, an arena matching the name provided will be retrieved. To add flexibility, a like operator is used (along with a "%" wildcard operator) to make it possible for the arena name entered to be complete. Instead, the string entered will be used to filter the query and return only arena objects whose names start with the string entered:

@app.route('/nba/api/v0.1/arena/<arena_name>', methods=['GET'])
def get_arena_name(arena_name):
arenas = session.query(Arena).filter(Arena.name.like(arena_name+"%")).all()
data = [{"type": "Feature", "properties":{"name":arena.name,"id":arena.id},
"geometry":{"type":"Point", "coordinates":[round(arena.longitude,6), round(arena.latitude,6)]},
} for arena in arenas]
return jsonify({"type": "FeatureCollection","features":data})

A list comprehension is used to generate the arena dictionaries. Here is an example of a response to a string query to the arena endpoint:

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset