2024/05/07 ポータルのキャッシュAPIを作る
以下の要件を満たすAPIをVercel KVとExpress.jsで作ってみるt6o_o6t.icon
REST APIの設計手法は分からない
REST APIではなくGraphQLのほうが良い?
特定の部分だけ読み取ったり書き込んだりしたい
GraphQLが分からないので一旦REST
VercelKVが分からないので一旦Prisma
ユビキタス言語
Subject
科目
Lecture
特定の講義
例:理系のための基礎英語の第3回はLectureである。
Period
講時
例:3講時は、Periodである。
Homework
課題
例:理系のための基礎英語(Subject)第3回(Lecture)のHomeWorkは、CBTである。
POST /subjects/lectures/bulk
一括更新用?
GET /subjects/{subjectName}/lectures
Subjectに含まれるLectureの一覧を取得する。
GET /subjects/{subjectName}/lectures/{lectureCount}
SubjectのLectureのうち、lectureCount回目のものを取得する。
Response
code:lecture.schema.json
{
"type": "object",
"properties": {
"scheduled_at": {
"month": {
"type": "number"
},
"date": {
"type": "number"
}
},
"period": {
"type": "number"
}
}
}
PUT /subjects/{subjectName}/lectures/{lectureCount}
SubjectのLectureのうち、lectureCount回目のものを完全に変更する。
Request BodyにはGETのレスポンスと同様の形式のJSONを設定する
GET /subjects/{subjectName}/lectures/{lectureCount}/homeworks
意外とGraphQLで出来るのでは?
やってみよう