Skip to main content

URL parameters

Scribe automatically extracts details about your URL parameters from your routes. It can figure out the names, required/optional status and sometimes the types of your parameters. However, you can overwrite this information or add new details, such as a description, using the @urlParam annotation.

tip

Scribe can figure out a few details about ID parameters in URLs. For example, if you have a route like /users/:id or /:user_id, Scribe will guess the parameter name (id/user_id) and description ("The ID of the user."). Of course, you can use @urlParam to override these.

The annotation takes the type of the parameter (within braces {}), its name, an optional "required" label, and an optional description. Valid types are string, integer, and number.

note

Remember, for Express and Restify, docblocks must go on the route definition.

For example, you can document an Express route like this: like this:

/**
* @urlParam {integer} id required The ID of the post.
* @urlParam {string} lang The language. Example: en
*/
app.get("/post/:id/:lang?", (req, res) => {...});

Scribe will generate a random example by default, but you can specify your own value in examples and response calls by ending the description with Example: <your-example>, as we did for the lang parameter above.

This gives:

If you want Scribe to omit a certain optional parameter (lang in our example) in examples and response calls, end the description with No-example. It will still be present in the docs.

/**
* @urlParam {integer} id required The ID of the post.
* @urlParam {string} lang The language. No-example
*/