プロジェクト生成 - テンプレート¶
プロジェクトジェネレーターは、初期設定、セキュリティ、データベース、初期APIエンドポイントなどの多くが含まれているため、プロジェクトの開始に利用できます。
プロジェクトジェネレーターは常に非常に意見が分かれる設定がされており、ニーズに合わせて更新および調整する必要があります。しかしきっと、プロジェクトの良い出発点となるでしょう。
フルスタック FastAPI PostgreSQL¶
GitHub: https://github.com/tiangolo/full-stack-fastapi-postgresql
フルスタック FastAPI PostgreSQL - 機能¶
- 完全なDockerインテグレーション (Dockerベース)。
- Docker Swarm モードデプロイ。
- ローカル開発環境向けのDocker Composeインテグレーションと最適化。
- UvicornとGunicornを使用したリリース可能な Python web サーバ。
- Python FastAPI バックエンド:
- 高速: NodeJS や Go 並みのとても高いパフォーマンス (Starlette と Pydantic のおかげ)。
- 直感的: 素晴らしいエディタのサポートや 補完。 デバッグ時間の短縮。
- 簡単: 簡単に利用、習得できるようなデザイン。ドキュメントを読む時間を削減。
- 短い: コードの重複を最小限に。パラメータ宣言による複数の機能。
- 堅牢性: 自動対話ドキュメントを使用した、本番環境で使用できるコード。
- 標準規格準拠: API のオープンスタンダードに基く、完全な互換性: OpenAPIや JSON スキーマ。
- 自動バリデーション、シリアライゼーション、対話的なドキュメント、OAuth2 JWTトークンを用いた認証などを含む、その他多くの機能。
- セキュアなパスワード ハッシュ化 (デフォルトで)。
- JWTトークン 認証。
- SQLAlchemy モデル (Flask用の拡張と独立しているので、Celeryワーカーと直接的に併用できます)。
- 基本的なユーザーモデル (任意の修正や削除が可能)。
- Alembic マイグレーション。
- CORS (Cross Origin Resource Sharing (オリジン間リソース共有))。
- Celery ワーカー。バックエンドの残りの部分からモデルとコードを選択的にインポートし、使用可能。
- Dockerと統合されたPytestベースのRESTバックエンドテスト。データベースに依存せずに、全てのAPIをテスト可能。Docker上で動作するので、毎回ゼロから新たなデータストアを構築可能。(ElasticSearch、MongoDB、CouchDBなどを使用して、APIの動作をテスト可能)
- Atom HydrogenやVisual Studio Code Jupyterなどの拡張機能を使用した、リモートまたはDocker開発用のJupyterカーネルとの簡単なPython統合。
- Vue フロントエンド:
- Vue CLIにより生成。
- JWT認証の処理。
- ログインビュー。
- ログイン後の、メインダッシュボードビュー。
- メインダッシュボードでのユーザー作成と編集。
- セルフユーザー版
- Vuex。
- Vue-router。
- 美しいマテリアルデザインコンポーネントのためのVuetify。
- TypeScript。
- NginxベースのDockerサーバ (Vue-routerとうまく協調する構成)。
- Dockerマルチステージビルド。コンパイルされたコードの保存やコミットが不要。
- ビルド時にフロントエンドテスト実行 (無効化も可能)。
- 可能な限りモジュール化されているのでそのまま使用できますが、Vue CLIで再生成したり、必要に応じて作成したりして、必要なものを再利用可能。
- PostgreSQLデータベースのためのPGAdmin。(PHPMyAdminとMySQLを使用できるように簡単に変更可能)
- Celeryジョブ監視のためのFlower。
- Traefikを使用してフロントエンドとバックエンド間をロードバランシング。同一ドメインに配置しパスで区切る、ただし、異なるコンテナで処理。
- Traefik統合。Let's Encrypt HTTPS証明書の自動生成を含む。
- GitLab CI (継続的インテグレーション)。フロントエンドおよびバックエンドテストを含む。
フルスタック FastAPI Couchbase¶
GitHub: https://github.com/tiangolo/full-stack-fastapi-couchbase
⚠️ 警告 ⚠️
ゼロから新規プロジェクトを始める場合は、ここで代替案を確認してください。
例えば、フルスタック FastAPI PostgreSQLのプロジェクトジェネレーターは、積極的にメンテナンスされ、利用されているのでより良い代替案かもしれません。また、すべての新機能と改善点が含まれています。
Couchbaseベースのジェネレーターは今も無償提供されています。恐らく正常に動作するでしょう。また、すでにそのジェネレーターで生成されたプロジェクトが存在する場合でも (ニーズに合わせてアップデートしているかもしれません)、同様に正常に動作するはずです。
詳細はレポジトリのドキュメントを参照して下さい。
フルスタック FastAPI MongoDB¶
...時間の都合等によっては、今後作成されるかもしれません。😅 🎉
spaCyとFastAPIを使用した機械学習モデル¶
GitHub: https://github.com/microsoft/cookiecutter-spacy-fastapi
spaCyとFastAPIを使用した機械学習モデル - 機能¶
- spaCy のNERモデルの統合。
- Azure Cognitive Search のリクエストフォーマットを搭載。
- リリース可能な UvicornとGunicornを使用したPythonウェブサーバ。
- Azure DevOps のKubernetes (AKS) CI/CD デプロイを搭載。
- 多言語 プロジェクトのために、セットアップ時に言語を容易に選択可能 (spaCyに組み込まれている言語の中から)。
- 簡単に拡張可能。spaCyだけでなく、他のモデルフレームワーク (Pytorch、Tensorflow) へ。