Web後臺服務開發——POST方法和Payload

文章轉自 極客論壇

添加POST方法的路由分一下幾個步驟

第一步,添加@Post裝飾器

import { Controller, Get, Param, Post, Body } from '@nestjs/common';

@Controller('v1')
export class V1Controller {
   @Get('/hello/:id')
   sayHello(@Param() params) {
       return `Hello Controller ${params.id}`;
   }

  @Post('/hi')
   sayHi() {
   }
}


第二步,創建DTO(Data Transfer Object),就是描述數據格式的類型

在src目錄中創建dto目錄,然後進入dto目錄執行 nest generate class hiDto,這時代碼結構如下

normal

我們打開hi-dto.ts,給HiDto類添加字段

export class HiDto {
  readonly name: string;
   readonly age: number;

}

這表示,我們正在編寫的路由接受的參數是形如 { "name": "Tom", "age": 10} 這樣的json數據。


第三步,重新修改我們的controller文件,添加@Body裝飾器

import { Controller, Get, Param, Post, Body } from '@nestjs/common';
import { HiDto } from 'src/dto/hi-dto';

@Controller('v1')
export class V1Controller {
   @Get('/hello/:id')
   sayHello(@Param() params) {
       return `Hello Controller ${params.id}`;
   }

  @Post('/hi')
   sayHi(@Body() hiDto: HiDto) {

   }
}


第四步,使用POST參數

import { Controller, Get, Param, Post, Body } from '@nestjs/common';
import { HiDto } from 'src/dto/hi-dto';

@Controller('v1')
export class V1Controller {
   @Get('/hello/:id')
   sayHello(@Param() params) {
       return `Hello Controller ${params.id}`;
   }

  @Post('/hi')
   sayHi(@Body() hiDto: HiDto) {
       console.log(hiDto);
       return hiDto;

   }
}

hiDto就是POST傳遞的參數。


第五步,用curl發送一個請求,測試路由

首先,運行項目,npm run start;

其次,打開git bash,用curl發送命令。(當然,你也可以學習一下postman這個工具)

curl http://localhost:3000/v1/hi -X POST -d '{"name": "Tom", "age": 10}' -H 'Content-Type: application/json'



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章