Closed2

[flutter][ferry]OptimisticResponse のメモ

はやぶさはやぶさ

OptimisticResponseのIDをどうするか

例えば「Book」というデータを作成した場合、OptimisticResponseのBookに含まれるはずのIDをどうするかという問題。解決策として以下を考えた。

  • a. BookのIDをnullableにする
    • 型安全性が壊れる、変な分岐処理が入りそうなのでやりたくない
  • b. Bookのidをクライアント側で生成する
    • 一番良い方法だと思う。
    • データベースのIDがauto incrementだと対応できない。
    • UUIDのようなクライアント側からIDが生成できるフォーマットにする必要がある。
  • c Bookのidをサーバー側では生成できないような値を定数で持っておく
    • auto incrementなDBならクライアント側は -1 を持つとか
    • UUIDなら、何か一つ定数にしておくとか
    • その定数の場合は更新処理をストップするとかは書きやすいかもしれない
      • Bookを作成 → Optimisitc Response → 正規のResponseが来る前にBookを更新 → サーバー側が持ってないIDなのでエラー みたいな事故を防げる

個人的にはbの方法が良い。bを実現するためにもDBのIDはクライアント側で指定できる形式が望ましい。

このスクラップは2022/01/30にクローズされました