Skip to content

Latest commit

 

History

History
147 lines (112 loc) · 3.72 KB

README.md

File metadata and controls

147 lines (112 loc) · 3.72 KB

api を記述する

aiomysql https://aiomysql.readthedocs.io/en/stable/connection.html

poetry 系

依存関係の解決用
requirements.txt みたいなやつ

依存関係

最初の依存関係のインストール

poetry install

個別のライブラリのインストール、アンインストール

# dependenciesに追加
poetry add jinja2
# 本番環境以外の場合はgroup指定
poetry add --group (dev|test|linter) jinja2

# dependenciesから削除
poetry remove jinja2

migration ファイルの作成

詳しくはREADMEを確認

./run.sh createmmigration {description}

FastAPI の起動

  1. コンテナの起動
docker-compose -f api/docker/docker-compose.yaml up
  1. fastapi の起動
npm run fastapi

で fastapi を起動可能です。 fastapi の swagger を確認するには、http://localhost/docsにアクセスしてください。

test 関連

ディレクトリ構成

1層目

api/docker/            # docker系docs/              # ドキュメント
├ (python_modules/)  # ライブラリ格納場所
├ (.venv/)           # 仮想環境ライブラリ格納場所src/               # ソースコード全般tests/             # テストコードrun.sh             # 全体的なコマンドを確認するためのシェルスクリプト, ./run.shで内容確認pyproject.toml     # poetryの設定ファイル

2層目

docker ディレクトリ

api/docker/mysql/               # mysqlの永続用フォルダ、初期設定のファイルも含む
  ├ .env                 # docker-compose用の設定ファイル、プロジェクト名やポートの指定、.env.sampleのコピーapp.env              # yamltoenvでの自動生成、appの環境変数docker-compose.yaml  # dockerの本体Doeckerfile          # appのdokcerファイル

src ディレクトリ

api/src/assets/          # 画像データなど,static?crud/            # CRUD操作に関する処理database/        # DBの設定系models/          # DBモデルの定義routers/         # ルーティング後のエンドポイントschemas/         # APIのI/O定義services/        # CRUD以外の処理dependencies.py  # 依存性注入 認証とかmain.py          # エンドポイントの設定

test ディレクトリ

api/tests/integration/    # 総合テストunit/           # 単体テストconftest.py     # テストの設定dependencies.py # 依存性の上書き

3 層目

database ディレクトリ

api/src/database/migrations/      # migrationのための設定ファイル
    │ ├ versions/      # 生成されたmigrationファイルの置き場
    │ ├ env.py         # migrationファイル生成時の前処理等
    │ ├ README.md      # alembic系の設定など
    │ └ script.py.mako # migrationファイル生成の雛形alembic.ini      # migrationのための設定ファイルbase_class.py    # modelのBaseクラス定義db.py            # db接続の定義

VScode におけるライブラリの依存関係の解消のやり方

下記を.vscode/settings.jsonに追加することで自動で補完が行われるようになる 追跡済み

{
    "python.autoComplete.extraPaths": [
        "api/python_modules/local/lib/python3.10/site-packages"
    ],
    "python.analysis.extraPaths": [
        "api/python_modules/local/lib/python3.10/site-packages"
    ]
}