AWS Amplifyで匿名掲示板を作ってみた
AWS Amplifyで匿名掲示板を作ってみた
以下のURL
https://master.d1cb8uqtyd2rew.amplifyapp.com
いろんな機能がまったくない。そのうち追加するかも
開発録
APIの型は以下のようになっておりまーす
type Thread @model {
id: ID!
title: String!
tags: [String]
Comments: [Comment] @connection(keyName: "byThreadId", fields: ["id"])
createdAt: AWSDateTime
updatedAt: AWSDateTime
}
type Comment
@model
@key(name: "byThreadId", fields: ["threadId", "createdAt"]) {
id: ID!
threadId: ID!
content: String!
createdAt: AWSDateTime
updatedAt: AWSDateTime
good: Int
}
@connection と subscription を使ってみた。
githubはこちら
https://github.com/opvelll/nanasiAmplify
connectionとkeyで繋がった型の同時mutation
しかし、Amplify APIで親子の型を定義できるけど、同時に更新ってどうするんだろ。スレッド作りながら最初のコメント書くみたいなところね。わからんかったわ。
わからないからとりあえず、親型を作ったあとcreateFinishedみたいな関数の中で、子の型を作ることにした。動いとる。
ページのアドレス
最初のページはスレッドのリストを表示して、クリックするとスレッドごとのページに移動するようにした。
アドレスはconnectionとkeyでよく設定されるID型をそのまま使った。最初文字列を使ったけど、文字列型だとダブる可能性があるじゃん、だからプライマリーキーとかにして、ダブらないように設定したいじゃん、でもちゃんと調べたわけじゃないけど、文字列をプライマリーキーにして、かつ、String型をconnectionとkeyにするみたいなのは、できなさそうなんだよね。なんかドキュメントでできそうな匂いだしてるけどさぁ。
結局、connectionとkeyで渡す型はID型一辺倒になったわ。そしてアドレスもIDになってる。vue routerでアドレスのIDを読み取って検索するわけやね。そういうアドレスに割り切ったほうがすぐ作れる。
いつもの
前にも書いたけど、ルートになる型には変にkey付けれない。
ディスカッション
コメント一覧
まだ、コメントがありません