Bird
Raised Fist0
FastAPIframework~10 mins

Router prefix and tags in FastAPI - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to create a router with prefix '/items'.

FastAPI
from fastapi import APIRouter

router = APIRouter(prefix=[1])
Drag options to blanks, or click blank then click option'
A'items/'
B"/items"
C"items"
D'/item'
Attempts:
3 left
💡 Hint
Common Mistakes
Omitting the leading slash in the prefix string.
Using singular form instead of plural for resource path.
2fill in blank
medium

Complete the code to add tags to the router for documentation.

FastAPI
router = APIRouter(prefix="/users", tags=[1])
Drag options to blanks, or click blank then click option'
A["user"]
B"users"
C["users"]
D"user"
Attempts:
3 left
💡 Hint
Common Mistakes
Passing a single string instead of a list.
Using singular form 'user' instead of plural 'users' for tags.
3fill in blank
hard

Fix the error in the router creation by completing the blank.

FastAPI
router = APIRouter(prefix=[1], tags=["items"])
Drag options to blanks, or click blank then click option'
A"/items"
Bitems
C'items/'
D"items"
Attempts:
3 left
💡 Hint
Common Mistakes
Using unquoted identifiers instead of strings.
Missing the leading slash in the prefix string.
4fill in blank
hard

Fill both blanks to create a router with prefix '/products' and tags ['products', 'inventory'].

FastAPI
router = APIRouter(prefix=[1], tags=[2])
Drag options to blanks, or click blank then click option'
A"/products"
B["products", "inventory"]
C["product", "stock"]
D"products"
Attempts:
3 left
💡 Hint
Common Mistakes
Using tags as a single string instead of a list.
Missing the leading slash in prefix.
5fill in blank
hard

Fill all three blanks to create a router with prefix '/orders', tags ['orders'], and include a GET endpoint '/list'.

FastAPI
router = APIRouter(prefix=[1], tags=[2])

@router.get([3])
async def list_orders():
    return {"message": "List of orders"}
Drag options to blanks, or click blank then click option'
A"/orders"
B["orders"]
C"/list"
D"list"
Attempts:
3 left
💡 Hint
Common Mistakes
Omitting the leading slash in prefix or path.
Using tags as a string instead of a list.

Practice

(1/5)
1. What is the main purpose of using a prefix in a FastAPI router?
easy
A. To add authentication to routes automatically
B. To group routes under a common URL path segment
C. To change the HTTP method of all routes
D. To disable routes temporarily

Solution

  1. Step 1: Understand what prefix does in FastAPI routers

    The prefix adds a common path segment to all routes defined in that router, grouping them logically.
  2. Step 2: Compare options with prefix purpose

    Only To group routes under a common URL path segment correctly describes grouping routes under a shared URL path segment.
  3. Final Answer:

    To group routes under a common URL path segment -> Option B
  4. Quick Check:

    Router prefix = group routes [OK]
Hint: Prefix groups routes by URL path segment [OK]
Common Mistakes:
  • Thinking prefix changes HTTP methods
  • Confusing prefix with authentication
  • Assuming prefix disables routes
2. Which of the following is the correct way to add a prefix and tags to a FastAPI router?
easy
A. router = APIRouter(prefix='/items', tags=['items'])
B. router = APIRouter(tags='/items', prefix=['items'])
C. router = APIRouter(prefix=['items'], tags='/items')
D. router = APIRouter(prefix='/items', tags='/items')

Solution

  1. Step 1: Recall correct parameter types for prefix and tags

    Prefix expects a string starting with '/', tags expects a list of strings.
  2. Step 2: Check each option's syntax

    router = APIRouter(prefix='/items', tags=['items']) uses prefix as string and tags as list correctly; others mix types incorrectly.
  3. Final Answer:

    router = APIRouter(prefix='/items', tags=['items']) -> Option A
  4. Quick Check:

    Prefix string + tags list = correct syntax [OK]
Hint: Prefix is string, tags is list of strings [OK]
Common Mistakes:
  • Using list for prefix instead of string
  • Using string for tags instead of list
  • Mixing order of parameters incorrectly
3. Given this code snippet, what is the full path of the endpoint?
from fastapi import APIRouter

router = APIRouter(prefix='/users', tags=['users'])

@router.get('/profile')
async def get_profile():
    return {'msg': 'User profile'}
medium
A. /profile/users
B. /profile
C. /users
D. /users/profile

Solution

  1. Step 1: Identify router prefix and route path

    The router has prefix '/users' and the route path is '/profile'.
  2. Step 2: Combine prefix and route path

    Full path is prefix + route path = '/users' + '/profile' = '/users/profile'.
  3. Final Answer:

    /users/profile -> Option D
  4. Quick Check:

    Prefix + route path = full endpoint path [OK]
Hint: Full path = prefix + route path [OK]
Common Mistakes:
  • Ignoring prefix and using only route path
  • Swapping prefix and route path order
  • Confusing tags with path
4. What is wrong with this FastAPI router code?
router = APIRouter(prefix=['/items'], tags='items')
medium
A. prefix should be a list, tags should be a string
B. Both prefix and tags should be strings
C. prefix should be a string, tags should be a list of strings
D. No error, this is valid syntax

Solution

  1. Step 1: Check expected types for prefix and tags

    Prefix must be a string starting with '/', tags must be a list of strings.
  2. Step 2: Analyze given code

    Prefix is given as a list, tags as a string, both reversed from expected types.
  3. Final Answer:

    prefix should be a string, tags should be a list of strings -> Option C
  4. Quick Check:

    Prefix = string, tags = list [OK]
Hint: Prefix string, tags list; reverse causes error [OK]
Common Mistakes:
  • Using list for prefix
  • Using string for tags
  • Assuming both can be strings
5. You want to create two routers in FastAPI: one for /products tagged 'products' and another for /orders tagged 'orders'. How do you correctly set prefixes and tags to keep your API organized?
hard
A. router_products = APIRouter(prefix='/products', tags=['products'])\nrouter_orders = APIRouter(prefix='/orders', tags=['orders'])
B. router_products = APIRouter(prefix=['products'], tags='products')\nrouter_orders = APIRouter(prefix=['orders'], tags='orders')
C. router_products = APIRouter(prefix='/products', tags='products')\nrouter_orders = APIRouter(prefix='/orders', tags='orders')
D. router_products = APIRouter(tags=['products'])\nrouter_orders = APIRouter(prefix='/orders')

Solution

  1. Step 1: Recall correct types for prefix and tags

    Prefix must be a string starting with '/', tags must be a list of strings.
  2. Step 2: Evaluate each option for correctness and organization

    router_products = APIRouter(prefix='/products', tags=['products'])\nrouter_orders = APIRouter(prefix='/orders', tags=['orders']) correctly assigns string prefixes and list tags for both routers, organizing API paths and documentation clearly.
  3. Final Answer:

    router_products = APIRouter(prefix='/products', tags=['products']) router_orders = APIRouter(prefix='/orders', tags=['orders']) -> Option A
  4. Quick Check:

    Correct prefix and tags keep API organized [OK]
Hint: Use string prefix and list tags for each router [OK]
Common Mistakes:
  • Using list for prefix or string for tags
  • Omitting prefix or tags on one router
  • Mixing tags and prefix types
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