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)
...