Fetching entities
Following the REST practices, the URL for fetching all cats should be /cats
, while for fetching a single cat, it should be /cats/123
, where 123
is the ID of the cat we are trying to fetch.
Let's add two new routes for that:
get("/cats") { ... } get("/cats/{id}") { ... }
The first route is very similar to the /status
route we introduced earlier in this chapter. But the second round is slightly different: it uses a query parameter in the URL. You can recognize query parameters by the curly brackets around their name.
To read a query parameter, we can access the parameters
map:
val id = requireNotNull(call.parameters["id"]).toInt()
If there is an ID on the URL, we need to try and fetch a cat from the database:
val cat = transaction { CatsTable.select { CatsTable.id.eq(id) ...