最初のAPIを書く.
第二編
で、我々はNESTJSプロジェクトを作成し、データベースを作成し、統合されたmikroのオーム.この部分ではエンティティを作成し、APIを書き始めます.
まず最初にユーザモジュールから始めます.我々は、ユーザーフォルダのような我々のプロジェクトを構成するつもりですコントローラ、サービス、倉庫、それ自身の実体を含んでいて、このモジュールが完成したあと、我々はこのモジュールを主なモジュール、すなわち「app . modules . tsファイル」に輸出しようとしています.
まず、srcディレクトリにあるフォルダという名前のユーザーを作りましょう.
エンティティを作成する
さて、ユーザーに関連するすべてのエンティティを含むフォルダー“エンティティ”を作成しましょう.
< div >
< OL >
@Entity
エンティティを定義するにはエンティティには多くのプロパティが含まれ、これらのプロパティは@Property()
, @ManyToOne()
, @OneToMany()
, これらは、これらのチェックアウトの詳細については、デコレーターとして知られているDecorator Reference .エンティティプロパティをnullableと定義するようなオプションのプロパティもあります@Property({ nullable: true })
また、プロパティの既定値を設定します.チェックアウトDefining Entities エンティティとそのプロパティの定義方法についてもっと知りたい場合はp >
また、'クラスバリデータ'パッケージを使用して、エンティティプロパティ自体を検証します.@IsEmail()
電子メールが有効かどうかを確認します.これらの妥当性検査は、エンティティ作成レベル自体では、データベースに到達する不適切なデータがないように多く追加できます.p >
ユーザリポジトリを作成しましょう.このディレクトリをユーザディレクトリに作成しますbr/>
<> P >
クラスをハイライト表示する
//user.repository.ts
import { EntityRepository, Repository } from '@mikro-orm/core';
import { User } from './entities/user.entity';
@Repository(User)
export class UserRepository extends EntityRepository<User> {}
< div >現在、マイグレーションを実行し、マイグレーションを適用する必要があります.br/>
このコマンドを実行する
npx mikro-orm migration:create
新しい移行ファイルを作成します.任意の新しいエンティティが作成された場合、または既存のエンティティに変更が行われた場合、新しい移行ファイルが生成されます.Then, npx mikro-orm migration:up
コマンドはデータベースへの変更を適用します.p >これらの他のmikroormに関連するコマンドをチェックしてください
<> P >
クラスをハイライト表示する
npx mikro-orm migration:create # Create new migration with current schema diff
npx mikro-orm migration:up # Migrate up to the latest version
npx mikro-orm migration:down # Migrate one step down
npx mikro-orm migration:list # List all executed migrations
npx mikro-orm migration:pending # List all pending migrations
< div >< div class ="LagagCount - gig - Link - tag "
"スクリプトのID "https://gist.github.com/rskhan167/a2b1d170ee9eb630e6813526576a1ac2.js//>
< div >
< br/> < br/> < br/>
これは生成されている移行ファイルです.これらの変更をデータベースに適用した後、新しいテーブルが作成されます.p >
< P >
< P >
< H >
ファーストAPI
<高橋潤子>
テーブルが作成されたので、APIを書き始めることができます.コントローラとサービスファイルを作成します.コントローラファイルはユーザに関連するすべてのAPIを処理します、そして、すべてのビジネスロジックはサービスファイルで書かれますp >
< H 3 >
コントローラ
<高橋潤子>
<堀田>このAPIは、ユーザーの詳細を受け入れるし、我々のユーザーテーブルに格納されます.最初に、DTO(Data Transfer Object)を作成する必要があります.単純な単語DTOSでは、オブジェクトをドメインモデルにマップするのに使われますbr/>
ユーザディレクトリで"dtos "フォルダを作成し、その中に"user . dto . ts "ファイルを作成します.p >
< div class ="LagagCount - gig - Link - tag "
"スクリプトのID "https://gist.github.com/rskhan167/6615f1c4a7f418ac2752fefd4fc18643.js//>
< div >
ここでは、新しいユーザを作成するために必要なすべてのプロパティを定義しました.プロパティを検証する前の投稿で述べたように、'クラスバリデータ'ライブラリを使用しています.p >
ユーザコントローラファイルを作成することができますbr/>
<> P >
< div class ="LagagCount - gig - Link - tag "
"スクリプトのID "https://gist.github.com/rskhan167/b39459b364d89d2a7e0a90d15c98dc25.js//>
< div >
私たちはここでユーザサービスを注入しています.ここではデータベースを呼び出してCRUD操作を行います.コントローラでは、受信リクエストを処理し、レスポンスをクライアントに返します.p >
< H 3 >
サービス
<高橋潤子>
< ulink > < urlurl ="http ://www . linux . or . co . jp > "> UserServiceは、ORMを使ってデータベースを呼び出してデータを保存したり取得したりする場所です.NESTJSのサービスはプロバイダとして知られています.プロバイダ(サービス、リポジトリ、ヘルパーなど)を依存関係として注入することができます.p >
< div class ="LagagCount - gig - Link - tag "
"スクリプトのID "https://gist.github.com/rskhan167/c67a87668d455bb632bbfe61a0a0d0bd.js//>
< div >
< OL >
ユーザサービスの中で一つの方法があり、指定されたメールIDを持つユーザが既にデータベースに格納されているかどうかを調べます.次に、ユーザーエンティティで作成されたコンストラクターを使用してユーザーオブジェクトを作成します.最後に、データベースに新しいユーザオブジェクトを保存します.p >
前に、前述のようにAPIをテストします.このユーザーモジュールをメインの"app . modules . ts "ファイルにインポートする必要があります.単に"usermodule "ファイルをimportに追加します.p >
< div class ="LagagCount - gig - Link - tag "
"スクリプトのID "https://gist.github.com/rskhan167/e536d5406b83df5c89d906e6d1ca538b.js//>
< div >
< H >
APIをテストします.
<高橋潤子>
< tt >アプリケーションを起動するには、"NPM Run Start "または"NPM Run start : dev "コマンドを実行します.br/>
テスト用のPostmanを使用している場合は、すでにそれを持っていないか、またはあなたのブラウザでもPostmanオンラインを使用することができますダウンロードすることができます.p >
我々はポストリクエストを送る
/api/user
エンドポイント: < br/>成功した後、データベースに最初のエントリがあります.br/>
< H >
概要
<高橋潤子>
このチュートリアルでは、最初のAPIを作成し、Makro ORMを使用してデータベースからデータを保存して取得する方法を学びました.そして、Postmanを使ってAPIをテストしました.p >
<高橋潤子>https://github.com/rskhan167/movie-review
この部分は、次のいずれかを参照してください.読んでくれてありがとうbr/>
あなたがそれが役に立つとわかるならば、あなたの友人とそれを共有してくださいp >
Reference
この問題について(最初のAPIを書く.), 我々は、より多くの情報をここで見つけました https://dev.to/rasoolk16/building-crud-api-with-nestjs-write-first-api-46mテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol