開発しているGoogleスプレッドシートのAPI化サービス「SSSAPI」。
無事にオープンβ版を公開できたので、なんで作ろうと思ったかを書いてみた。
個人開発が好きで、いろんなものをちょこちょこ作ってる。
今は、Nuxt.jsとFirebaseがお気に入りで、
小さなものを含めると20サービスくらい作ったと思う。
ちょっとしたものを作ることも多く、
「もっと楽に作ることはできないかなぁ?」
といろいろ考えたりしていた。
その時同時に考えていたのが、ゲーム攻略のサービス。
マスタデータが多く、更新も早いので、どうしようかなと。
とりあえず、初期データが必要なので、
スプレッドシートにまとめていた。
データを集め終わって、いざつくろうとしたときに、
「このままJSON APIにできれば楽なのにな〜」
というのが最初だった。
ゲームの攻略サービスを作っている途中だったので、
まずは、スプレッドシートAPIでJSON化して、
JSONファイルをソースに含める形で開発。
これだけでも割とよく、
とりあえずJSONファイルで開発するのは良い感じだった。
データの項目が足りなくても、
スプレッドシートなら列を追加するだけなので、
データ構造を検討している初期はスムーズに進んだ。
ただ、JSONファイルをインポートしてるので、
ビルドサイズは大きくなるし、
データを更新したいときはビルドしないといけないので、
めんどくさいな思うようになり、API化は必要だなと作りはじめた。
今まで作ってきたものを振り返ると、
割とこういうことが多い感じだった。
過去に作ったものでも、カテゴリやお知らせなど、
こちらが用意するデータは、JSONファイルで用意していたり、
JSONファイルの内容をFirestoreに登録するスクリプトを書いていた。
Firestoreは便利なんだけど、
管理画面は自分で用意しないといけないので、
マスターデータを扱いたいときは、めんどうな部分があった。
1つ項目を追加するのにも、JSONファイル&ビルドだったり、
追加用のスクリプトを書かないといけない。。
SSSAPIであれば、スプレッドシートを管理画面にでき、
そのままAPI化できるので、かなり楽になるな〜と。
実際、楽になって、crieitのweb1weekの企画へ
参加したときに作ったWebサービスは1~2日で開発できた。
いざ作るとなると、時間が必要なので、
既存のものはないかな〜と見てみた。
見てみたのは、GAS、ヘッドレスCMS、競合サービスの3種類。
一番よく見るのはこれかなと思う。
Google Action ScriptでWebサービスとして公開するパターン。
記事も多くコードもあるので、便利で昔使っていた。
ただ、シートごとにGASの設定が必要だったり、
どれが設定したスプレッドシートか忘れてしまうので、
一元管理ができればな〜と思ったりする。
SSSAPIであれば、毎シートにGASを設定する必要はないし、
登録してあるスプレッドシート=API化しているなので、
一元管理も簡単にできるようにした。
次によくみるのはヘッドレスCMSかなと思う。
スキーマも柔軟に設定できて、管理画面もリッチ。
ただ、内容がリッチすぎたり、
個人開発だとお高めの価格設定なので、手が出せず。。
「多くのサービスを楽に作りたい!!」と思うと、
無料枠の制限では心もとないなと。。
また、アクセス制限などは有料プランぽいので、断念。
SSSAPIでは、機能は限定的だけど、
個人開発でも使いやすい価格帯になるようにがんばってる。
無料のプランでもドメイン制限を使えるようにしている。
今まで聞いたことがなかったけど、調べてみたら、
6つくらい競合のサービスがあった。
もちろん、ヘッドレスCMSよりも安めだけど、
Googleドライブやスプレッドシートへの全権限を許可しないといけない。。
もしくは、全員がアクセスできるように共有設定を変更する必要がある。
Googleドライブやスプレッドシートへの全権限を許可は、
割とこれが強くて、個人情報や機密情報を入れているアカウントだと使えない。
API化したいスプレッドシートのデータ自体も財産なので、
オープンにはしたくないときも多い。
SSSAPIでは、権限を共有するのではなく、
システムアカウントを共有設定に追加してもらう形にし、
共有設定されているシートのみ参照できる方法にしている。
すこし手間ではあるけど、安心・安全のため。
ドメイン制限やアクセストークンによる認証も用意しているので、
APIのURLがわかっていても、アクセスできない仕組みを用意している。
利便性・価格・セキュリティの面から、
作ったほうがいいなぁと思って、開発を進めてみた。
使っているのが、マスターデータが多いものに偏っているけど、
と、かなり便利に。
他のサービスのお知らせやリリースノートなども、
順次、SSSAPIに置き換えている。
ユーザが作成するデータは、今までどおりFirestoreを使っている感じだけど、
プロトタイプ開発のときやテストデータ作成なんかでも活躍してるので、
最初に思っていた「ちょっとしたものを早く楽に作れる」ようになった気がする。
スプレッドシートで管理するのつらいな。。という規模になってきたら、
JSON APIの結果をFirestoreに突っ込めばよいのもいい。
β版なので、まだまだ足りないところはあるけど、
ユーザさんからのフィードバックとドックフーディングをして、
よりよいものにしていければと思う。
β期間中はプレミアムプランの内容を無料で使えるのでお得!
ぜひぜひ、この機会にお試しいただければ〜!
GoogleスプレッドシートのAPI化サービス
『SSSAPI』
Twitter: @sssapi_app
🌟🌟オープンβ版の公開開始🌟🌟フィルタリングやページングなど機能を強化し、より便利になりました😊β版はプレミアムプランの内容を無料で利用できます🙌ぜひ、この機会にお試しください‼️‼️GoogleスプレッドシートのAPI化サービスhttps://t.co/fKUGVFeQR7#拡散希望RT協力お願い致します pic.twitter.com/O2rjs35BZD
— 【公式】SSSAPI / GoogleスプレッドシートのAPI化サービス (@sssapi_app) August 24, 2021
Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?
コメント