Closed tokku5552 closed 2 years ago
@kawadon780 すみません、わかりずらかったので、別途issue立てました! 楽天APIのレスポンスのsutatus codeについて、迷っていることって何でしょうか? ステータスコードごとにすべてハンドリングする必要があるか?とかそういうことです?
@tokku5552 CC:@karokita
Isuueありがとうございます!
色々すみません、依頼が抽象的過ぎました。。。
ステータスコードごとにすべてハンドリングする必要があるか?とかそういうことです?
はい、まずはここの観点が気になっておりましてver1.0では考慮するべきかという所になります。
温度感としては、オフラインに関しては今回考慮しなくていいと返信いただいたので、細かいエラーも結構気にしなくていいのかなーとか思ったりしました。
よくあるケースだと「429 too_many_requests(リクエスト過多 (各ユーザ制限値超過)) 」でしょうか?検索なら連打するような状況はあると思うので、一時的にレスポンスが成功しないから「時間をおいて再度検索ください」と表示したりするのが親切ですが、それは面倒なので「通信に失敗しました」みたいなおおざっぱなダイアログで実装して、各画面の通信系のエラーもそれを流用するとかそういう方針が決まればいいかなーと思っています。 その方針が分かれば楽天apiを使うクラスの動きもなんとなーく決まるかと思っています。
質問しといてあれなんですが、各画面好きなように実装していいよーとかでも実際はその都度質問すればいいので問題ないかもとも思っております。
これ実装はUIのあとということで、急いでないのですが、429 too_many_requests(リクエスト過多 (各ユーザ制限値超過)
というの見ていて、そういえばアクセスキーとかシークレットとか使ってAPI叩くとかであればfunctions経由にしたほうが良いかも?と思いました。
functionsから叩けばリクエストのレート制限とかもこちらで調整できそう。
Bookに持たせる情報を今回はFirestoreに保存せず、必要なときに毎回APIを叩くという設計にしています。(でないと例えば、はらぺこあおむしの情報が、場合によってはいくつもfirestoreに保存される事になり、非効率と考えたため)。
ですが、functions経由するなら、一度叩いてfirestoreに保存しておいて、次回以降はfirestoreから情報取るようにすれば、重複することもないしAPIのレート制限の緩和もできるかなと思いました。
忘れないようにメモしただけなので、実際に着手したらもうちょい詰めましょう!
@tokku5552 コメントありがとうございます。
functionsも検討承知しました。 functionsでFireStoreに保存してキャッシュみたいに使うイメージですかね?(使ったことないのでわかってないです)
https://github.com/pj-picbook/picbook/issues/27#issuecomment-1198335078 apiも簡単に作ってUIとつないだのを上記に進捗として貼りました。
apiの中身みてますが、なんか絵本ジャンル以外が返却されてるので、リクエスト時にジャンルIDも指定しないといけなそうですね。。。そこら辺も精査していきます。
@kawadon780
functionsでFireStoreに保存してキャッシュみたいに使うイメージですかね?
イメージそんな感じです!#27の動画見た感じ、こうサクサク動かすにはAPI直接のほうがやっぱりいいのかも?とか思いました 🤔 どういう場合にfunctinsつかってどういう場合に直接叩くのか整理したほうが良さそうですね 👀
@tokku5552 なるほどです!ありがとうございます!
どういう場合にfunctinsつかってどういう場合に直接叩くのか整理したほうが良さそうですね 👀
承知しました。自分の方でも調べてみますm( )m
まず検索結果を本棚に登録する
こととジャンルでのフィルター
のみ行いその他の問題は別issueに分けて一旦優先度下げる。@kawadon780
かわどさんもう調べてるかもなのですが、 楽天ブックスのジャンルIDとジャンル名がのってたのでシェアです! https://nokin-taro.com/rakutenbooks_genreid/
下記2つが絵本系のジャンルIDになるようです。 001003 007616
@karokita いえ、まだ調べてなかったです。助かりました!
そこまでまだ調査してないのですが、ジャンルは一つしかリクエストできないっぽいのと「007616」の方が検索ひっかからない?ぽいので「001003」を一旦採用したいと思います。
概要
要件
例:メールアドレスはログインしているユーザのメールアドレスを表示する
下記のイメージ図を参考にしてください。
デザインは別途まとめて対応するので、Flutter 標準Widgetを使って簡易的な実装にとどめてください。
要件以外の要件をどうするかは、エンジニアにお任せします。迷ったら相談してください。
期限
親ストーリー
12