In this video, explore how route templates can be used in ASP.NET Core MVC to route to controllers without hardcoding the route names.
- [Narrator] Let's add another controller to the project to handle the slash rooms route. This route will let the client search for a room in the hotel. In the controllers folder I'll add a new class called rooms controller (typing). Then we'll inherit from controller base. Import the name space. Add the API controller attribute. We'll use the same pattern here of creating a named get method, and annotating it with an http get attribute and a route name.
So I'll do public I action result, get rooms. For now I'll just throw a not implemented exception. On the action method I'll say http get. And the name will be just the name of the method, get rooms. We also need the route attribute on the controller. On the route controller, this was hard-coded to slash, but in this case, we want the controller to handle requests to slash rooms.
Instead of hard-coding slash rooms, we can use a template stream, like slash bracket controller. The bracket controller template will automatically match the name of the controller, excluding the word controller. So in this case, slash rooms. I'll save this, and let's go add it to the route controller. We can use the url dot link method here again to generate an absolute url to the get rooms route on the new rooms controller. Rooms equals new, and I'll return this in a nice ion compatible format.
Href equals url dot link. Name of, we'll have to do rooms controller dot get rooms. And no route parameters here either, so null. Now let's start up this API and hit it with our client. We'll do get slash here again. We have a self-referential href and a route to slash rooms. Let's go ahead and follow this link and just try to hit the slash rooms route.
This route is hit, but of course we generate an exception. If we let this play through, we get an error response back from the API. Later we'll add a custom serializer that will return a nice formatted JSON error response in the case of an exception like this.
- What is RESTful design?
- Building a new API with ASP.NET Core
- Using HTTP methods
- Returning JSON
- Creating RESTful routing with templates
- Securing RESTful APIs with HTTPS
- Representing resources
- Representing links
- Representing collections
- Sorting and searching collections
- Building forms
- Adding caching to an ASP.NET Core API
- Configuring user authentication and authorization
Skill Level Intermediate
1. REST API Concepts
2. Build a Basic API
3. Versioning and Errors
4. Secure the API
5. Represent Resources
6. Represent Links
7. Represent Collections
Add pagination7m 37s
8. Sorting Collections
9. Searching Collections
10. Forms and Modifying Data
11. Caching and Compression
12. Authentication and Authorization
- Mark as unwatched
- Mark all as unwatched
Are you sure you want to mark all the videos in this course as unwatched?
This will not affect your course history, your reports, or your certificates of completion for this course.Cancel
Take notes with your new membership!
Type in the entry box, then click Enter to save your note.
1:30Press on any video thumbnail to jump immediately to the timecode shown.
Notes are saved with you account but can also be exported as plain text, MS Word, PDF, Google Doc, or Evernote.