Although HTTP was originally designed to request and respond with HTML and other resources for us to look at, it is also good to build services. Roy Fielding stated in his doctoral dissertation describing the Representational State Transfer (REST) architectural style that the HTTP standard defines:
URLs to uniquely identify resources
Methods to perform common tasks, such as
GET
andDELETE
The ability to negotiate media formats, such as XML and JSON
To allow the easy creation of services, ASP.NET Core has combined what used to be two types of controller.
In earlier versions of ASP.NET, you would derive from ApiController
to create a Web API service and then register API routes in the same route table that MVC uses.
With ASP.NET Core, you use the same Controller
base class as you used with MVC, except the routes are configured on the controller itself, using attributes, rather than in the route table.