目的
プロダクトに適したAPI用Webフレームワークの導入のための調査
現状
flaskを利用してAPIを構築しているが、要件が膨れ上がり複雑度を増してきている
生産性を高く保つために、FWの乗り換えを検討している
作業概要
各FWについて以下の観点でプロダクトにマッチしているかを調査する
- 必要な機能が揃っている、しかし不要なものがない
- メンテナンス性が高い(描きやすく読みやすい)
- ルールや規約が整備され、迷うことが少ない
社内勉強会にて、一人1FWを調査し、調査結果を持ち寄り発表する
作業詳細
1. シンプルなAPIの作成
TODOアプリのAPIを作成してみる
endpoint
- GET /todo (SELECT)
- POST /todo (INSERT)
- PUT /todo/ (UPDATE)
- DELETE /todo/ (DELETE)
TODO's data Model
- id (サロゲートキー、PK)
- message
- created_time
- updated_time
2. 各APIの機能有無について調査
以下の22の観点についての対応状況を調査
https://qiita.com/tmknom/items/08b69594e32a92bccee5#%E8%A8%80%E8%AA%9E%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF%E9%81%B8%E5%AE%9A
対象Webフレームワーク
LLを中心に選定。Javaは生産性の観点で今回は除外
- Ruby: Rails(APIモード)
- PHP: Laravel(Lumen)
- Python: Django(Django REST Framework)
- Python: Pyramid
Go Ginなどあと3つ追加予定
おまけ
Google Trendによる比較
https://trends.google.co.jp/trends/explore?date=all&q=java%20spring,php%20laravel,ruby%20on%20rails,django%20python