NESTJSのどんなメソッドででもすべての要求を捕える単純なAPI終点を作る方法?
Originally posted here!
単純なAPIエンドポイントを作るには、NESTJSのどんなメソッドでもすべてのリクエストをキャッチします. リクエストメソッド定義を記述するための有効なTypeScriptクラスです.この場合、すべてのリクエストをキャッチする単一のエンドポイントのみを書き込みます. エー エー
例えば、単純なリクエストAPIエンドポイントを
これを行うには、まずリクエストコードをすべてのリクエストをキャッチするファイルを作成しましょう
端末でこのファイルを作るには
こうすることができます.
こうすることができます.
こうすることができます.
こうすることができます.
のコード
あなたが
こうすることができます.
あなたが要請するならば
上のコードはcodesandbox .
移動するHoppscotch API tester 🚀 リクエストなどのメソッドを送信するには
注意:上記のホプスコッチURLを使用してリクエストを送信できなかった場合は
それで😃!
単純なAPIエンドポイントを作るには、NESTJSのどんなメソッドでもすべてのリクエストをキャッチします.
@Controller()
コントローラのクラスの前にDecorator関数を使用してルートのメタデータを定義します.@All()
Decorator関数は、メタデータを設定して、class
は、特定のエンドポイントに来るすべてのリクエストをキャッチするために使用されます.TLドクター
import { Controller, All } from "@nestjs/common";
// the @Controller() decorator function will instruct Nestjs
// to add a route of `/greet`
@Controller("greet")
export class GreetController {
// the @All() decorator function will instruct Nestjs
// that this is the default method that should be
// invoked always when the user requests to
// `/greet` endpoint with any methods
@All()
sayHello() {
return `Hello World`;
}
}
注:メインの基本的なボイラープレートコードを生成するにはapp
モジュールを参照してくださいHow to create a new project or an app in Nestjs? あなたがNESTJSプロジェクトをしなかったならば.例えば、単純なリクエストAPIエンドポイントを
/greet
そして、このエンドポイントへのリクエストに対してGET
, POST
, PUT
, DELETE
OR PATCH
単純な文字列レスポンスを返すHello World!
.これを行うには、まずリクエストコードをすべてのリクエストをキャッチするファイルを作成しましょう
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`;
}
}
今、我々はNESTJSにどんな方法とルートのどんな要請でもそうすることを指示する必要があります/greet
我々は、実行する必要がありますsayHello
これを行うには、@All()
からのデコレータ機能@nestjs/common
モジュールで、sayHello
このような引数がないメソッドimport { Controller, All } from "@nestjs/common";
// the @Controller() decorator function will instruct Nestjs
// to add a route of `/greet`
@Controller("greet")
export class GreetController {
// the @All() decorator function will instruct Nestjs
// that this is the default method that should be
// invoked always when the user requests to
// `/greet` endpoint with any methods
@All()
sayHello() {
return `Hello World`;
}
}
注:あなたが見て@All()
Decorator関数は、関数に引数を渡していないことを確認できます/greet
エンドポイント.たとえば、このメソッドを呼び出す必要がある場合は/greet/hai
エンドポイントは、hai
に@Delete()
デコレータ機能.のコード
/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 {}
今、私たちはシンプルなAPIエンドポイントを作りました/greet
これはNESTJSプロジェクトでどんなメソッドの成功も要求します.矢🥳!あなたが要請するならば
https://localhost:3000/greet
任意のメソッドを使用すると、Hello World
サーバから.上のコードはcodesandbox .
移動するHoppscotch API tester 🚀 リクエストなどのメソッドを送信するには
GET
, POST
, PUT
, DELETE
, PATCH
, 上記のCodeDandboxコンテナ内のURLにETCなど.注意:上記のホプスコッチURLを使用してリクエストを送信できなかった場合は
proxy
アプリで.それで😃!
お気軽に共有する場合は、この便利な発見😃.
Reference
この問題について(NESTJSのどんなメソッドででもすべての要求を捕える単純なAPI終点を作る方法?), 我々は、より多くの情報をここで見つけました https://dev.to/melvin2016/how-to-make-a-simple-api-endpoint-that-catches-all-requests-with-any-methods-in-nestjs-4cn1テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol