pj-picbook / picbook

9 stars 0 forks source link

楽天書籍検索APIで書籍を検索できるようにする #57

Closed tokku5552 closed 2 years ago

tokku5552 commented 2 years ago

概要

要件

期限

親ストーリー

12

tokku5552 commented 2 years ago

@kawadon780 すみません、わかりずらかったので、別途issue立てました! 楽天APIのレスポンスのsutatus codeについて、迷っていることって何でしょうか? ステータスコードごとにすべてハンドリングする必要があるか?とかそういうことです?

kawadon780 commented 2 years ago

@tokku5552  CC:@karokita

Isuueありがとうございます!

色々すみません、依頼が抽象的過ぎました。。。

ステータスコードごとにすべてハンドリングする必要があるか?とかそういうことです?

はい、まずはここの観点が気になっておりましてver1.0では考慮するべきかという所になります。

温度感としては、オフラインに関しては今回考慮しなくていいと返信いただいたので、細かいエラーも結構気にしなくていいのかなーとか思ったりしました。

よくあるケースだと「429 too_many_requests(リクエスト過多 (各ユーザ制限値超過)) 」でしょうか?検索なら連打するような状況はあると思うので、一時的にレスポンスが成功しないから「時間をおいて再度検索ください」と表示したりするのが親切ですが、それは面倒なので「通信に失敗しました」みたいなおおざっぱなダイアログで実装して、各画面の通信系のエラーもそれを流用するとかそういう方針が決まればいいかなーと思っています。 その方針が分かれば楽天apiを使うクラスの動きもなんとなーく決まるかと思っています。

質問しといてあれなんですが、各画面好きなように実装していいよーとかでも実際はその都度質問すればいいので問題ないかもとも思っております。

pj-picbook commented 2 years ago
tokku5552 commented 2 years ago

これ実装はUIのあとということで、急いでないのですが、429 too_many_requests(リクエスト過多 (各ユーザ制限値超過)というの見ていて、そういえばアクセスキーとかシークレットとか使ってAPI叩くとかであればfunctions経由にしたほうが良いかも?と思いました。 functionsから叩けばリクエストのレート制限とかもこちらで調整できそう。

背景

Bookに持たせる情報を今回はFirestoreに保存せず、必要なときに毎回APIを叩くという設計にしています。(でないと例えば、はらぺこあおむしの情報が、場合によってはいくつもfirestoreに保存される事になり、非効率と考えたため)。
ですが、functions経由するなら、一度叩いてfirestoreに保存しておいて、次回以降はfirestoreから情報取るようにすれば、重複することもないしAPIのレート制限の緩和もできるかなと思いました。

忘れないようにメモしただけなので、実際に着手したらもうちょい詰めましょう!

kawadon780 commented 2 years ago

@tokku5552 コメントありがとうございます。

functionsも検討承知しました。 functionsでFireStoreに保存してキャッシュみたいに使うイメージですかね?(使ったことないのでわかってないです)

kawadon780 commented 2 years ago

https://github.com/pj-picbook/picbook/issues/27#issuecomment-1198335078 apiも簡単に作ってUIとつないだのを上記に進捗として貼りました。

apiの中身みてますが、なんか絵本ジャンル以外が返却されてるので、リクエスト時にジャンルIDも指定しないといけなそうですね。。。そこら辺も精査していきます。

tokku5552 commented 2 years ago

@kawadon780

functionsでFireStoreに保存してキャッシュみたいに使うイメージですかね?

イメージそんな感じです!#27の動画見た感じ、こうサクサク動かすにはAPI直接のほうがやっぱりいいのかも?とか思いました 🤔 どういう場合にfunctinsつかってどういう場合に直接叩くのか整理したほうが良さそうですね 👀

kawadon780 commented 2 years ago

@tokku5552 なるほどです!ありがとうございます!

どういう場合にfunctinsつかってどういう場合に直接叩くのか整理したほうが良さそうですね 👀

承知しました。自分の方でも調べてみますm( )m

tokku5552 commented 2 years ago
karokita commented 2 years ago

@kawadon780

かわどさんもう調べてるかもなのですが、 楽天ブックスのジャンルIDとジャンル名がのってたのでシェアです! https://nokin-taro.com/rakutenbooks_genreid/

下記2つが絵本系のジャンルIDになるようです。 001003 007616

kawadon780 commented 2 years ago

@karokita いえ、まだ調べてなかったです。助かりました!

そこまでまだ調査してないのですが、ジャンルは一つしかリクエストできないっぽいのと「007616」の方が検索ひっかからない?ぽいので「001003」を一旦採用したいと思います。