GoogleAppEngineでURL短縮サービスを作ってみる

転職して、Web系のプロダクトに関わるようになって一年立ちました。
フロントもバックエンドも一応触っていますが、既にある機能の改修とか小さい機能の追加がメインです。
自分で0から作れる自信がないです。
自信がないのは経験がないからだと思います。
ということで、なんらかのWebサービスを作ってみようと思います。

こういうときは、きっと一番作るのが簡単そうなものから始めるのがいいです。

一番作るのが簡単そうなWebサービスって、人によっていろいろ考えはあると思いますが、僕はURL短縮サービスなんじゃないかと思いました。
(もちろん、真面目に考えると色々大変なことはあるとは思いますが)

apache とか RDBMS とかをいちいち準備するのも面倒なので、
Google App Engineでやってみます。

URLを短縮する際の仕組みは、

1. 短縮したいURLを受け取る
2. ランダムな6文字のアルファベットを生成する
3. DataStoreに生成した文字列が保存されて入れば、2に戻りさらに文字列を生成する
4. DataStoreに生成した文字列が保存されていなければ、短縮URLとしてその文字列を採用し、短縮URLともとのURLの組を保存する(短縮URLをキーとする)

短縮URLから元のURLに戻すには、

1. DataStoreからget_by_idで短縮URLが保存されているか確認する
2. 保存されて入れば、元のURLにリダイレクト
3. 保存されていなければ、NotFoundページへ

と言う感じです。

URL
http://mijikakusuruyatsu.appspot.com/

リポジトリ
https://github.com/TakahashiShuuhei/mijikakusuruyatsu

http://mijikakusuruyatsu.appspot.com/PYahIP
とかにアクセスするとこのブログにリダイレクトしてくれます。

短縮URLなのにホスト名がやたら長いとか、全然関係ない文字列も短縮しようとしちゃうとか、問題はありますが、とりあえず作ってデプロイするという目標は達成できたのでとりあえずよしとします。