最近の……シリーズ
そのうちまとめてちゃんと書こうと思っていたけれど、例によってまとまるどころか書き始めもしないので、まとめないままにだらだらと最近やっていたことの取り組み方を書こうかなー。なんていうシリーズ化したいの。
Django REST framework
より正確に言えば、Django さんとその上で動く Django REST framework さんを組み合わせて使っています。この構成は2018年の初めくらいから使っていて(以前、ちょっとだけ触れました)、その後も気に入って使っています。Django で Model を定義したあと、Serializer というものを定義して(と言っても基本構成は簡易なものなのでお手軽)、View をごにょごにょするだけであら不思議、それっぽい RESTful API っぽいものができてしまいます。Django と同じように Generic Views というよく使うような View Sets があらかじめ用意されているので、大枠のところまでガンガン行けます。
REST かそうじゃないかとかは私にとってはどうでもいいです。ガワに Angular さんで SPA をかぶせるので JSON とかで出力してくれれば良かっただけです。でも大丈夫、とてもいいプロダクトだって思います、割といいところまで手が届くもの。私がやっているシステムなんて大したことがないので比較にはならないですけど、基本的に困ったことはありません。大体用意されている View やら Method やらでなんとかなっていますよ。
Django…?
だからまぁ、Django の Template とか出力の部分って直に使ってませんよねー。というとそうでもなくて、折角あるし、楽をするために部分的に使っています。
それは認証の部分、ログインして使うアプリを作っていたりするので、どうしても欠かせない機能でありますが、どうするのが一番お手軽かっていうとそりゃ最初から用意されている仕組みを使うことで、ログイン画面は普通に Django の Template 機能を使って表示しています。そこでログイン処理を正常に終えると SPA 側へ Redirect するし、逆にログインされていなければ SPA 側から Redirect します。あと、CSRF Token とかも同時に埋められますしね、Template 機能からならお手軽に出力できる。
キメラっているし格好悪い感もあるので、ちゃんとできる子たちは任意の認証機構を使ったりして SPA 側で完結しような。とは思ったりするけど。
今後……
Django さんとは割と長く付き合っているのだけど、今のところ不満とかは特にないので、今後も使わせていただくと思います。「大きい」とは思うけれど、相変わらずフルスタックであることの恩恵の方を重要視しているし、私がやっている案件は割と特殊で少ないユーザーさんが利用するだけのシステムであることが多いので、パフォーマンス云々も基本問われない。Django さんが遅いとは言わないけど、より「小さい」ものを採用したところであまり利点はないかなーて思ってます。機能的にはオーバースペックではあるのだろうけど。
継続して開発を続けてくださっている関係者の方々には頭が下がります。感謝感謝です。いつか私も何かしらの協力ができれば。って相変わらず思っているだけで実行できない……。がんばろ。……うん。……はい。