fullstack fastapi vuejs price aggregator
1.0.0
ウェブスクレイピングによるイギリスのスーパーマーケットの価格集計ツール。これは私の大学のプロジェクト用に MVP として開発されたものであるため、正しく機能しない部分があります。今後更新するかもしれません。
Docker と Node.js がインストールされていることを確認してください。
docker-compose up --build -d
実行します。バックエンドが開始され、最初の実行時に必要なコンテナがすべて構築されます。これには数分かかる場合があります。docker-compose exec backend bash
を使用してシェルを取得します。python manage.py createdb
実行します。python manage.py seeddb
を実行します。すべてのパスワードがpasswordに設定されていることに注意してください。cd
でクライアント ディレクトリに移動し、必要なノード モジュールをインストールするnpm install
実行します。npm run serve
実行します。 URL | 説明 |
---|---|
0.0.0.0:8000/API | バックエンド JSON API |
0.0.0.0:8000/ドキュメント | バックエンド OpenAPI/Swagger 生成 API リファレンス ドキュメント |
0.0.0.0:8000/redoc | ReDoc が提供する代替インタラクティブ ドキュメント |
ローカルホスト:9527 | フロントエンド VueJS シングル ページ アプリケーション |
バックエンドには、Netflix の Dispatch から多大な影響を受けた CLI が含まれています。
typer
(FastAPI と同じ作成者) はプロジェクトの CLI の作成に使用され、manage.py 経由でアクセスされます。
コマンドを実行するには、以下を使用してバックエンド コンテナ内でシェルを実行する必要があります。
docker-compose run backend bash
使用可能なすべてのコマンドを表示するには:
root@72293bee6b37:/app# python manage.py
Usage: manage.py [OPTIONS] COMMAND [ARGS]...
Options:
--help Show this message and exit.
Commands:
config Display application configuration.
createdb Creates an empty database.
createrole Add role to database.
createuser Create new user in the database.
develop Start a development server with reload.
dropdb Drop the existing database.
routes Display application routes and dependencies.
seeddb Add fake data to database.
shell Starts an interactive shell with app object imported.
root@72293bee6b37:/app# python manage.py routes
Application Endpoints
Path Methods Dependencies
----------------------------- --------- --------------------------------------------------------
/api/v1/users/ GET ['RoleChecker: Roles: admin,user']
/api/v1/users/ POST ['RoleChecker: Roles: admin,user']
/api/v1/users/{id} GET ['RoleChecker: Roles: admin,user']
/api/v1/users/{id} PUT ['RoleChecker: Roles: admin,user']
/api/v1/users/{id} DELETE ['RoleChecker: Roles: admin,user']
/api/v1/users/{id}/roles GET ['RoleChecker: Roles: admin,user']
/api/v1/users/{id}/roles PUT ['RoleChecker: Roles: admin,user']
/api/v1/users/{id}/shops GET ['RoleChecker: Roles: admin,user']
/api/v1/users/{id}/shops PUT ['RoleChecker: Roles: admin,user']
/api/v1/roles/ GET ['RoleChecker: Roles: admin,user']
/api/v1/roles/ POST ['RoleChecker: Roles: admin,user']
/api/v1/roles/{id} GET ['RoleChecker: Roles: admin,user']
/api/v1/roles/{id} PUT ['RoleChecker: Roles: admin,user']
/api/v1/roles/{id} DELETE ['RoleChecker: Roles: admin,user']
/api/v1/shops/ GET ['RoleChecker: Roles: admin,user']
/api/v1/shops/ POST ['RoleChecker: Roles: admin,user']
/api/v1/shops/{id} PUT ['RoleChecker: Roles: admin,user']
/api/v1/shops/{id} DELETE ['RoleChecker: Roles: admin,user']
/api/v1/shops/listings/ GET ['RoleChecker: Roles: admin,user']
/api/healthcheck GET []
python manage.py config
Application Configuration
Setting Value(s)
-------------------------- --------------------------------------------------------------------
APP_DIR /app/app
STATIC_DIR /app/app/static
EMAIL_TEMPLATES_DIR /app/app/static/email-templates/html
PROJECT_NAME Fastapi Backend
SERVER_HOST 0.0.0.0
CORS_WHITELIST ['http://localhost', 'http://localhost:8000', 'http://0.0.0.0:8000']
FASTAPI_ENV development
DEBUG False
LOG_LEVEL debug
FIRST_SUPERUSER [email protected]
FIRST_SUPERUSER_PASSWORD a5dbf43e07f4d19e5b73bc89a8f74
USERS_OPEN_REGISTRATION True
SECRET_KEY **********
JWT_AUTH_LIFETIME_SECONDS 604800
JWT_EMAIL_LIFETIME_SECONDS 3600
SMTP_USER [email protected]
SMTP_PASSWORD **********
SMTP_TLS False
SMTP_SSL False
SMTP_HOST mailhog
SMTP_PORT 1025
POSTGRES_USER postgres
POSTGRES_PASSWORD **********
POSTGRES_HOST postgres
POSTGRES_PORT 5432
POSTGRES_DB fastapi_backend