Skip to content

Documenting Request Parameters in Nexios ​

Request parameters are essential for making your API flexible, filterable, and powerful. Nexios supports three main types of request parameters: path parameters, query parameters, and headers. This guide explains how to document each type in your OpenAPI docs, with clear examples and best practices.


Path Parameters ​

Path parameters are part of the URL and are used to identify specific resources. Nexios automatically detects and documents path parameters in your routes.

python
from nexios import NexiosApp

app = NexiosApp()

@app.get("/users/{user_id}", summary="Get a user by ID")
async def get_user(req, res, user_id: int):
    """Fetch a user by their unique ID."""
    ...

Path Parameter Example

Best Practice

Always use type hints for path parameters. This ensures correct OpenAPI documentation and better developer experience.


Query Parameters ​

Query parameters are used for filtering, sorting, or pagination. Nexios does not auto-detect query parameters, but you can explicitly document them using the parameters argument.

python
from nexios import NexiosApp
from nexios.openapi.models import Query

app = NexiosApp()

@app.get(
    "/users",
    parameters=[
        Query(name="user_id", description="Filter by user ID", required=False),
        Query(name="user_type", description="Filter by user type", required=False),
        Query(name="limit", description="Number of results to return", required=False)
    ],
    summary="List users with optional filters"
)
async def list_users(req, res):
    user_id = req.query_params.get("user_id")
    user_type = req.query_params.get("user_type")
    limit = req.query_params.get("limit", 10)
    ...

Query Parameter Example


Header Parameters ​

Headers are used for authentication tokens, custom client information, and more. Document them using the Header model.

python
from nexios import NexiosApp
from nexios.openapi.models import Header

app = NexiosApp()

@app.get(
    "/users",
    parameters=[Header(name="X-Auth-Token", description="Access token", required=True)],
    summary="List users (requires authentication)"
)
async def list_users(req, res):
    token = req.headers.get("X-Auth-Token")
    ...

Header Parameter Example


Best Practices ​

  • Always document every parameter your endpoint expects.
  • Use descriptive names and provide clear descriptions.
  • Mark parameters as required or optional as appropriate.
  • Use consistent naming conventions for headers and query params.

For more advanced parameter types (enums, arrays, etc.), see the OpenAPI specification or the Nexios advanced guides.