🐷
【frourio】apiを生やすためのメモ(一覧をgetする)
リクエストpath
- yarn devした状態でtouch server/api/hogeのようにディレクトリを作成。
- 自動的にhogeディレクトリ配下へindex.ts, controller.tsができる。
index.ts
import { Hoge } from '@prisma/client' // プロジェクトに合わせてdb接続を呼び出す
export type Methods = {
get: {
resBody: Hoge[] | undefined
}
}
controllerで処理の振り分け
controller.ts
import { getHoges } from '$/service/hoges'
import { defineController } from './$relay'
export default defineController(() => ({
get: async () => ({ status: 200, body: await getHoges() })
}))
バックエンドの純粋な関数(大体はDB操作を呼び出す)
server/service/hoge.ts
import { dbMethod } from '$/hogeDb/hoges'
import { Hoge } from '@prisma/client'
export const getHoges = async (): Promise<Hoge[] | undefined> => {
return await dbMethod.getHoges()
}
DB操作
server/hogeDb/hoge.ts
import { prisma } from '$/lib/prismaClient'
import { Hoge } from '@prisma/client'
export const dbMethod = {
getHoges: async (): Promise<Hoge[]> => {
try {
return await prisma.hoge.findMany()
} catch (error: any) {
throw new Error(error)
}
}
}
Discussion