どのように簡単に置く要求やAPIのエンドポイントNESTJSで作るには?


Originally posted here!
簡素にするPUT NESTJSにおけるAPIエンドポイントの要求やAPIは、以下のように定義する必要があります.
  • 様々なリクエストメソッド定義を書き込むための有効なTypeScriptクラスです.PUT リクエストメソッド.
  • エー@Controller() コントローラのクラスの前にDecorator関数を使用してルートのメタデータを定義します.
  • エー@Put() Decorator関数は、メタデータを設定して、class 特定のものに使用されるPUT リクエスト.
  • TLドクター


    import { Controller, Put } from "@nestjs/common";
    
    // the @Controller() decorator function will instruct Nestjs
    // to add a route of `/greet`
    @Controller("greet")
    export class GreetController {
      // the @Put() decorator function will instruct Nestjs
      // that this is the default method that should be
      // invoked when the user requests a `PUT` to `/greet` endpoint
      @Put()
      sayHello() {
        return `Hello World`;
      }
    }
    
    注:メインの基本的なボイラープレートコードを生成するにはapp モジュールを参照してくださいHow to create a new project or an app in Nestjs? あなたがNESTJSプロジェクトをしなかったならば.
    例えば、簡単にする必要があるとしましょうPUT リクエストAPI/greet そして、このエンドポイントを要求するとき、それはHello World! .
    だから最初にこれを行うには、ファイルを作成するPUT リクエストコード、名前を付けましょうgreet.controller.ts .
    端末でこのファイルを作るにはmkdir ディレクトリを作るコマンドgreet そして、touch コマンドをすばやくコントローラファイルを作成します.
    こうすることができます.
    mkdir greet && touch greet/greet.controller.ts
    
    上記のコマンドを実行した後、このように見える構造があります.
    - greet
     - greet.controller.ts
    
    現在、内部greet.controller.ts ファイルを作りましょうclass 呼ばれるGreetController そして、我々がメインでこのクラスを輸入する必要があるので、それを輸出してくださいapp モジュール.
    こうすることができます.
    export class GreetController {}
    
    コントローラクラスを定義し、エクスポートした後に@Controller() からのデコレータ機能@nestjs/common モジュール
    import { Controller } from "@nestjs/common";
    
    export class GreetController {}
    
    さあ、使いましょう@Controller() 前にデコレータ機能GreetController クラスとgreet それに.これは@Controller() Decorator関数は、使用するルートメタデータを定義するパラメーターを受け取ります.私たちにはルートが必要だから/greet , 我々は、ちょうどgreet それに文字列を渡し、nestjsはルーティング機構を処理します.
    こうすることができます.
    import { Controller } from "@nestjs/common";
    
    // makes the /greet route
    @Controller("greet")
    export class GreetController {}
    
    使用後@Controller() Decorator関数は、ルートを定義するために、現在、クラスでメソッドを作りましょうsayHello . このメソッドを使用して応答を返します.
    こうすることができます.
    import { Controller } from "@nestjs/common";
    
    // makes the /greet route
    @Controller("greet")
    export class GreetController {
      // a simple method that returns a string
      sayHello() {
        return `Hello World`;
      }
    }
    
    さて、リクエストメソッドがAであるときにNESTJSを指示する必要がありますPUT ルートは/greet 我々は、実行する必要がありますsayHello これを行うには、@Put() からのデコレータ機能@nestjs/common モジュールで、sayHello このような引数がないメソッド
    import { Controller, Put } from "@nestjs/common";
    
    // the @Controller() decorator function will instruct Nestjs
    // to add a route of `/greet`
    @Controller("greet")
    export class GreetController {
      // the @Put() decorator function will instruct Nestjs
      // that this is the default method that should be
      // invoked when the user requests a `PUT` to `/greet` endpoint
      @Put()
      sayHello() {
        return `Hello World`;
      }
    }
    
    注:あなたが見て@Put() Decorator関数は、関数に引数を渡していないことを確認できます/greet エンドポイント.たとえば、このメソッドを呼び出す必要がある場合は/greet/hai エンドポイントは、hai@Put() デコレータ機能.
    のコード/greet コントローラを行います.残っている唯一のことはGreetController コントローラクラスとそれをメインコントローラのコントローラとして初期化しますapp モジュールです.
    あなたがapp.module.ts (これはNestjs CLI ), そこにインポートする必要がありますGreetController クラスをコントローラに追加しますcontrollers 配列@Module() デコレータ機能.
    こうすることができます.
    /* app.module.ts file */
    import { Module } from "@nestjs/common";
    
    // Greet controller
    import { GreetController } from "./greet/greet.controller";
    
    @Module({
      imports: [],
      controllers: [GreetController], // <- add controller here
      providers: [],
    })
    export class AppModule {}
    
    今、我々は簡単にしたPUT 方法/greet NESTJSプロジェクトで正常に終了します.矢🥳!
    あなたが作るならばPUT へのリクエストhttps://localhost:3000/greet , あなたの応答を見ることができますHello World サーバから.
    上のコードはcodesandbox .
    移動するHoppscotch API tester 🚀 送るPUT 上記のCodesandBoxコンテナ内のURLを要求します.
    注意:上記のホプスコッチURLを使用してリクエストを送信できなかった場合はproxy アプリで.
    それで😃!

    お気軽に共有する場合は、この便利な発見😃.