Routes et traitement des requêtes
Définissez des routes d’API, gérez différentes méthodes HTTP et extrayez les données des corps, paramètres et chaînes de requête.
Routes et traitement des requêtes est une leçon NestJS Enterprise Backend APIs gratuite sur CoddyKit. Ceci est la leçon 1 sur 3. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage NestJS Enterprise Backend APIs, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours NestJS Enterprise Backend APIs comprend 3 leçons au total.
Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.
Understanding API Routes
When you build a web API, you need a way for clients (like a browser or mobile app) to send requests to specific functions on your server. This is where routes come in!
A route defines how a client's request URL (like /users or /products/1) maps to a particular action in your application code. It's like a street address for your API's functionalities.
HTTP Methods: The Action Verbs
Besides the URL, every request also uses an HTTP method, which tells the server what kind of action the client wants to perform. Common methods include:
- GET: Retrieve data (e.g., get a list of users).
- POST: Create new data (e.g., create a new user).
- PUT: Update existing data completely.
- PATCH: Partially update existing data.
- DELETE: Remove data.
NestJS uses decorators like @Get() or @Post() to link these methods to your controller functions.
Your First GET Route
Let's define a simple route to fetch some data. In NestJS, you use controllers to handle incoming requests and define routes.
The @Controller() decorator defines a base path for all routes within that controller. Then, methods like @Get() define specific endpoints and their HTTP methods.
Simple GET Route Example
Here's a basic NestJS app with a /greet endpoint. Run this example, then try accessing http://localhost:3000/greet in your browser or a tool like Postman.
You should see: Hello from NestJS!
// main.ts - Minimal NestJS app setup
import { NestFactory } from '@nestjs/core';
import { Module, Controller, Get } from '@nestjs/common';
@Controller('greet')
class GreetController {
@Get()
getGreeting(): string {
return 'Hello from NestJS!';
}
}
@Module({
controllers: [GreetController],
})
class AppModule {}
async function bootstrap() {
const app = await NestFactory.create(AppModule);
await app.listen(3000);
console.log('Server running on http://localhost:3000');
}
bootstrap();Dynamic Routes with Parameters
Often, you need routes that include dynamic data, like fetching a specific user by their ID (e.g., /users/123). These are called path parameters.
In NestJS, you define path parameters using a colon (:) followed by the parameter name in your @Get() decorator (e.g., @Get(':id')). You then extract its value using the @Param() decorator in your method signature.
Path Parameters Example
This example shows how to get a user ID from the URL path. If you run this, then visit http://localhost:3000/users/123, the output will be:
User ID: 123// main.ts - Minimal NestJS app setup
import { NestFactory } from '@nestjs/core';
import { Module, Controller, Get, Param } from '@nestjs/common';
@Controller('users')
class UsersController {
@Get(':id')
findUser(@Param('id') id: string): string {
return `User ID: ${id}`;
}
}
@Module({
controllers: [UsersController],
})
class AppModule {}
async function bootstrap() {
const app = await NestFactory.create(AppModule);
await app.listen(3000);
console.log('Server running on http://localhost:3000');
}
bootstrap();Filtering with Query Parameters
Query parameters are another way to pass data to your routes, often used for optional filtering, sorting, or pagination (e.g., /items?category=books&limit=5).
These parameters appear after a question mark (?) in the URL, as key-value pairs separated by ampersands (&). NestJS lets you easily access them using the @Query() decorator.
Query Parameters Example
This route uses query parameters to filter items. If you run this, then visit http://localhost:3000/items?category=books&limit=5, you'll see:
Category: books, Limit: 5// main.ts - Minimal NestJS app setup
import { NestFactory } from '@nestjs/core';
import { Module, Controller, Get, Query } from '@nestjs/common';
@Controller('items')
class ItemsController {
@Get()
findItems(
@Query('category') category: string,
@Query('limit') limit: string,
): string {
return `Category: ${category || 'all'}, Limit: ${limit || '10'}`;
}
}
@Module({
controllers: [ItemsController],
})
class AppModule {}
async function bootstrap() {
const app = await NestFactory.create(AppModule);
await app.listen(3000);
console.log('Server running on http://localhost:3000');
}
bootstrap();Handling Request Body (POST/PUT)
For operations that send a lot of data, like creating a new resource (POST) or updating an existing one (PUT), the data is typically sent in the request body.
The request body can contain structured data, often JSON. NestJS provides the @Body() decorator to easily parse and extract this data directly into your controller method's arguments.
Request Body Example (POST)
This example shows how to accept data in the request body for a POST request. If you send a POST request to http://localhost:3000/products with a JSON body like {"name": "Laptop", "price": 1200}, the output will be:
Product created: {"name":"Laptop","price":1200}// main.ts - Minimal NestJS app setup
import { NestFactory } from '@nestjs/core';
import { Module, Controller, Post, Body } from '@nestjs/common';
interface Product {
name: string;
price: number;
}
@Controller('products')
class ProductsController {
@Post()
createProduct(@Body() product: Product): string {
return `Product created: ${JSON.stringify(product)}`;
}
}
@Module({
controllers: [ProductsController],
})
class AppModule {}
async function bootstrap() {
const app = await NestFactory.create(AppModule);
await app.listen(3000);
console.log('Server running on http://localhost:3000');
}
bootstrap();Route Handling Check
Consider the following NestJS controller snippet:
import { Controller, Get, Param, Query } from '@nestjs/common';
@Controller('articles')
class ArticlesController {
@Get(':id')
getArticleById(@Param('id') id: string): string {
return `Article ID: ${id}`;
}
@Get()
searchArticles(@Query('keyword') keyword: string): string {
return `Searching for: ${keyword || 'all articles'}`;
}
}Which URL would successfully retrieve an article with ID "123"?
Recap: Routes & Requests
Great job! You've covered the fundamentals of defining API routes and handling different types of incoming data in NestJS:
- Routes map URLs to controller actions.
- HTTP methods (GET, POST, PUT, DELETE) define the action type.
- Path parameters (
@Param()) capture dynamic segments from the URL path. - Query parameters (
@Query()) extract optional key-value pairs from the URL string. - Request body (
@Body()) handles data sent with POST/PUT requests.
These are crucial building blocks for any robust RESTful API!
Questions Fréquemment Posées
La leçon « Routes et traitement des requêtes » est-elle gratuite ?
Oui — le texte complet de « Routes et traitement des requêtes » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours NestJS Enterprise Backend APIs, passe à CoddyKit PRO. Le cours NestJS Enterprise Backend APIs comprend 3 leçons au total.
Qu'est-ce que j'apprendrai dans « Routes et traitement des requêtes » ?
Définissez des routes d’API, gérez différentes méthodes HTTP et extrayez les données des corps, paramètres et chaînes de requête. Tu pratiques NestJS Enterprise Backend APIs avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer NestJS Enterprise Backend APIs ?
Aucune expérience préalable n'est requise. NestJS Enterprise Backend APIs sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 3.
Combien de temps prend la leçon « Routes et traitement des requêtes » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon NestJS Enterprise Backend APIs ?
Oui. Chaque leçon NestJS Enterprise Backend APIs inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Routes et traitement des requêtes
- Opérations CRUD avec TypeORM
- Gestion des erreurs et intercepteurs