Bird
Raised Fist0
Flaskframework~20 mins

Flask route as API endpoint - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Flask API Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ component_behavior
intermediate
2:00remaining
What is the output of this Flask API endpoint?
Consider this Flask route that returns JSON data. What will the client receive when accessing /api/data?
Flask
from flask import Flask, jsonify
app = Flask(__name__)

@app.route('/api/data')
def data():
    return jsonify({'name': 'Alice', 'age': 30})
A{'name': 'Alice', 'age': 30}
B<Response 200 OK>
Cname: Alice, age: 30
D{"name": "Alice", "age": 30}
Attempts:
2 left
💡 Hint
Think about what jsonify does and what format the client receives.
📝 Syntax
intermediate
2:00remaining
Which Flask route definition will cause a syntax error?
Identify the Flask route decorator that will cause a syntax error when defining an API endpoint.
A
@app.route('/api/user')
def user():
return 'User data'
B
@app.route('/api/user')
def user():
    return 'User data'
C
'atad resU' nruter    
:)(resu fed
)'resu/ipa/'(etuor.ppa@
D
@app.route('/api/user')
def user():
    return {'user': 'Bob'}
Attempts:
2 left
💡 Hint
Check the indentation of the function body.
❓ state_output
advanced
2:00remaining
What is the response status code of this Flask API endpoint?
Given this Flask route, what status code will the client receive when accessing /api/status?
Flask
from flask import Flask, jsonify
app = Flask(__name__)

@app.route('/api/status')
def status():
    return jsonify({'status': 'ok'}), 201
A201
B500
C404
D200
Attempts:
2 left
💡 Hint
Look at the second value returned by the function.
🔧 Debug
advanced
2:00remaining
Why does this Flask API endpoint raise a TypeError?
Examine the code below. Why will calling /api/error cause a TypeError?
Flask
from flask import Flask
app = Flask(__name__)

@app.route('/api/error')
def error():
    return {'message': 'fail'}
ARoute decorator syntax is invalid
BMissing return statement causes NoneType error
CFlask cannot convert dict to response automatically without jsonify
DFunction name 'error' is reserved and causes conflict
Attempts:
2 left
💡 Hint
Flask needs a proper response object or string, not a raw dict.
🧠 Conceptual
expert
3:00remaining
Which option correctly implements a Flask API endpoint that accepts a URL parameter and returns it in JSON?
You want to create an API endpoint /api/item/<id> that returns the id parameter as JSON. Which code snippet does this correctly?
A
from flask import Flask, jsonify
app = Flask(__name__)

@app.route('/api/item/&lt;id&gt;')
def item():
    return jsonify({'id': id})
B
from flask import Flask, jsonify
app = Flask(__name__)

@app.route('/api/item/&lt;id&gt;')
def item(id):
    return jsonify({'id': id})
C
from flask import Flask, jsonify
app = Flask(__name__)

@app.route('/api/item/&lt;int:id&gt;')
def item(id):
    return {'id': id}
D
from flask import Flask, jsonify
app = Flask(__name__)

@app.route('/api/item/&lt;int:id&gt;')
def item():
    return jsonify({'id': id})
Attempts:
2 left
💡 Hint
Check the function parameters and route variable types carefully.

Practice

(1/5)
1. What does a Flask route do in a web application?
easy
A. It styles the webpage with CSS.
B. It stores data in a database automatically.
C. It compiles Python code into machine code.
D. It defines a URL where the app listens for requests.

Solution

  1. Step 1: Understand the role of a route

    A Flask route sets a specific web address that the app listens to for incoming requests.
  2. Step 2: Identify what routes do not do

    Routes do not handle styling, database storage automatically, or code compilation.
  3. Final Answer:

    It defines a URL where the app listens for requests. -> Option D
  4. Quick Check:

    Flask route = URL listener [OK]
Hint: Routes map URLs to functions handling requests [OK]
Common Mistakes:
  • Thinking routes handle styling or database storage
  • Confusing routes with frontend design
  • Assuming routes compile code
2. Which of the following is the correct syntax to create a Flask route for the URL '/api/data'?
easy
A. @app.route('/api/data')\ndef get_data():\n return 'data'
B. @app.route('/api/data')\nfunction get_data() { return 'data'; }
C. app.route('/api/data')\ndef get_data():\n return 'data'
D. @app.route('/api/data')\ndef get_data():\nprint('data')

Solution

  1. Step 1: Check Flask route decorator syntax

    The correct syntax uses @app.route('/api/data') above a Python function definition.
  2. Step 2: Verify function and return statement

    The function must be defined with def and return a value; print does not send a response.
  3. Final Answer:

    @app.route('/api/data')\ndef get_data():\n return 'data' -> Option A
  4. Quick Check:

    Python route decorator + def + return = D [OK]
Hint: Use @app.route decorator and def function with return [OK]
Common Mistakes:
  • Using JavaScript syntax inside Flask route
  • Missing @ before app.route
  • Using print instead of return in route function
3. What will be the output when accessing the '/hello' route in this Flask app?
from flask import Flask, jsonify
app = Flask(__name__)

@app.route('/hello')
def hello():
    return jsonify({'message': 'Hello, world!'})
medium
A. {'message': 'Hello, world!'} as JSON response
B. Plain text: Hello, world!
C. HTML page with 'Hello, world!' text
D. Error: jsonify is not defined

Solution

  1. Step 1: Understand jsonify usage

    The function returns jsonify({'message': 'Hello, world!'}), which sends a JSON response.
  2. Step 2: Identify response type

    The response is JSON formatted, not plain text or HTML, and no error occurs because jsonify is imported.
  3. Final Answer:

    {'message': 'Hello, world!'} as JSON response -> Option A
  4. Quick Check:

    jsonify returns JSON response [OK]
Hint: jsonify returns JSON, not plain text or HTML [OK]
Common Mistakes:
  • Confusing jsonify with print or return string
  • Expecting HTML instead of JSON
  • Forgetting to import jsonify
4. Identify the error in this Flask route code:
from flask import Flask, jsonify
app = Flask(__name__)

@app.route('/data')
def data():
    return json({'key': 'value'})
medium
A. Missing @ before app.route decorator
B. json is not imported or defined; should use jsonify
C. Function name 'data' is invalid
D. Route URL must start with '/api/'

Solution

  1. Step 1: Check function return statement

    The code uses json({'key': 'value'}) but json is not imported or defined.
  2. Step 2: Identify correct function for JSON response

    Flask provides jsonify to return JSON responses, which is imported here.
  3. Final Answer:

    json is not imported or defined; should use jsonify -> Option B
  4. Quick Check:

    Use jsonify, not json, for JSON response [OK]
Hint: Use jsonify, not json, to return JSON in Flask [OK]
Common Mistakes:
  • Using json instead of jsonify
  • Forgetting to import jsonify
  • Assuming function names must follow special rules
5. You want to create a Flask API endpoint '/user/' that returns JSON with the user's id and a greeting message. Which code correctly implements this?
hard
A. @app.route('/user/')\ndef user():\n return jsonify({'id': id, 'message': 'Hello user'})
B. @app.route('/user/<id>')\ndef user(id):\n return {'id': id, 'message': 'Hello user ' + id}
C. @app.route('/user/')\ndef user(id):\n return jsonify({'id': id, 'message': f'Hello user {id}'})
D. @app.route('/user/')\ndef user(id):\n print({'id': id, 'message': f'Hello user {id}'})

Solution

  1. Step 1: Check route URL and parameter type

    The route uses '/user/' which correctly captures an integer parameter named id.
  2. Step 2: Verify function parameters and return

    The function accepts id and returns a JSON response using jsonify with the correct message format.
  3. Step 3: Identify errors in other options

    @app.route('/user/<id>')\ndef user(id):\n return {'id': id, 'message': 'Hello user ' + id} misses int type and returns a dict without jsonify; @app.route('/user/')\ndef user():\n return jsonify({'id': id, 'message': 'Hello user'}) misses id parameter; @app.route('/user/')\ndef user(id):\n print({'id': id, 'message': f'Hello user {id}'}) uses print instead of return.
  4. Final Answer:

    @app.route('/user/')\ndef user(id):\n return jsonify({'id': id, 'message': f'Hello user {id}'}) -> Option C
  5. Quick Check:

    Route with int param + jsonify return = A [OK]
Hint: Use in route and return jsonify with id [OK]
Common Mistakes:
  • Not specifying for integer parameter
  • Returning dict without jsonify
  • Using print instead of return in route
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard