Зачем в рест апи ид шлется в самом урле, а не в дате или не в квери?
Если запрос сделан методом GET, то параметры получают из url. В других методах ( POST, PUT, DELETE ) данные получают из тела запроса и url.

Методом GET получают, например, все новости сайта не передавая никаких параметров.
Если нужно получить одну новость, то передают к примеру её id.

Методом GET отправляются все запросы с браузера ( то, что написано в адресной строке ).

query параметры нужны, например, для организации лимита вывода новостей на одну страницу.
Вопрос в принятии правил REST. Я тоже поначалу так думал - что нафиг нужно всякие GET, PATCH, PUT. Зачем, если есть POST и в нем все прекрасно можно передавать в теле запроса и разбирать тоже. Однако, сейчас делаю приложение совсем с нуля и бэк пилю на Yii по всем правилам - GET - получение данных, POST - создание и т. д.
Если разобраться с конкретным фреймворком - создание такого API становится намного проще, когда количество функции этого API переваливает за пару десятков. А для простеньких на пяток-другой можно и правила понарушать.
Но когда приходит время разбираться, почему что-то пошло не так и/или надо что-то добавить/переделать - такой "простой" API превращается в кошмар. Да и документировать его сложнее