Mam wrażenie, że w Twoim poście brakuje podstawowej informacji: co to wgl jest API?
W przypadku aplikacji internetowych API to po prostu sposób komunikacji pomiędzy backendem a frontendem. Frontend wysyła odpowiednie żądania HTTP do backendu i ten je analizuje, wykonuje odpowiednie operacje i zwraca odpowiedź.
To, co Ty opisujesz, to nie jest API, a prosta aplikacja CRUD.
Sprawdzenie pozwolenia odbywa się tylko przy pomocy policies / gates (W modelu oraz kontrollerze) czy jeszcze gdzieś indziej? W jednym kursie, nauczyciel robił wszystko w "Tests"
Nie brzmi to dobrze… Nie bardzo wiem, co mają do tego wgl testy.