エンドポイントの仕様
まずは想定されているエンドポイントの定義を考える。
今回は以下で定義されるユーザのレコードを持っている。
enum Gender {
MALE,
FEMALE
}
model User {
id Int @id(autoincrement())
name String?
gender Gender?
}
About 2 min
まずは想定されているエンドポイントの定義を考える。
今回は以下で定義されるユーザのレコードを持っている。
enum Gender {
MALE,
FEMALE
}
model User {
id Int @id(autoincrement())
name String?
gender Gender?
}
一つ前の記事で Prisma のモデル定義を理解した前提で記事を書いていきます。つまり、自分が理解できていなかったらこの記事の内容を理解できないので、執筆が永遠に終わらないことになります。
今回は以下のように scheme.prisma ファイルを定義しました。previewFeatures = ["interactiveTransactions"]
を追記していますが、これはデータベースのロールバックするときに使います。
Prisma2 での transaction を ActiveRecord 風に書きたい問題で詳しく解説されているので、こちらを読むと幸せになれます。
Prisma とは公式ドキュメントによると、
Next-generation Node.js and TypeScript ORM
とあるので、要するに次世代の NodeJS と Typescript の ORM であるらしい。ORM とは Object-Relational Mapping のことでオブジェクトのリレーションを行うものを指し、要するに TS で書いたオブジェクトとデータベースを関連付けるための仕組みのことのことなのだと思う、多分。
NodeJS でデータベースを扱うには GraphQL や Prisma や TypeORM などがあるが、GraphQL だけは REST ではない API らしいので、REST を勉強したばかりということもあって今回は Prisma を採用しました。