"ASP.NET Core 2 and Angular 5" by Valerio De Sanctis will have you making a controller that starts out like this if you follow along and build out the code suggested in the lessons.
public class QuizController : Controller
Two of the actions inside start out like this:
public IActionResult Get(int id)
public IActionResult Latest(int num = 10)
See the difference? The first is like a traditional REST endpoint and the second is what the book dubs attribute-based routing even though both actions utilize attributes.