エレラボ管理画面API
環境構築
API系
-
データベース系のセットアップ
- こちらの手順通りDocker上でデータベース系を構築してください。
- admin-api用のデータベースを用意します。
mysql --host=127.0.0.1 -u root -p Enter password: (パスワードを入力:初期設定は"mysql") mysql> create database `selelab-admin-api`; mysql> grant all privileges on `selelab-admin-api`.* to `user`@`%`;
-
環境変数の設定
.env
ファイルをdocker-compose.yml
と同じ階層に配置します。.envの内容は以下のように設定してください。$ tree . -a -L 1 . ├── .env ├── .git ├── .gitignore ├── .vscode ├── LICENSE ├── README.md ├── doc_images ├── docker-compose.yml ├── docs ├── setup.cfg ├── spec.md └── web
DJANGO_SECRET_KEY=selelab*****admin-api # mysql://db:3306/selelab-admin-api DB_NAME=selelab-admin-api DB_USER=user DB_PASS=pass DB_HOST=db DB_PORT=3306 # redis REDIS_HOST=redis REDIS_PORT=6379 REDIS_DB=0 REDIS_PASS=
DJANGO_SECRET_KEY
は https://djecrety.ir/ これを使って乱数を生成した後、*****
の部分を置き換えてください。.env.sample
をコピーしてから作業するとやりやすいかもしれません。cp .env.sample .env
-
起動
- docker-composeさえ使えばあとはもう簡単です。
docker-compose up -d --build
- なお、このままだとユーザーが作られておらず、何もできないので以下のようにseedを走らせてください。
docker-compose run --entrypoint '' api python manage.py migrate docker-compose run --entrypoint '' api python manage.py loaddata seed_auth.json seed_accounting.json
- また、開発用のVueを立ち上げるには、以下のコマンドを実行してください。デフォルトでは http://localhost:8080/admin で立ち上がります。
cd front yarn install yarn serve
- docker-composeさえ使えばあとはもう簡単です。
-
ブラウザで http://localhost にアクセスすると以下のように Swagger が表示されます。
-
Vueの開発モードを立ち上げた場合、 http://localhost:8080/admin で管理画面が表示出来ます。
-
エンドポイントにアクセス
- ユーザーの一覧を取得する
http://localhost/api/admin/v1/users/
[ { "id": "380ac58d-1595-4614-a8e2-5e881b51d18a", "name": "user1", "email": "user1@example.com", "last_modified": "2020-02-08T01:41:57.829000Z", "icon_media_key": "8284e730-8e31-47b6-b4ab-f230e12ee089", "date_registered": "2020-02-08T03:02:10.908000Z" }, { "id": "f2b34d83-b890-45ff-aedd-1d11a92cb9f5", "name": "user2__", "email": "user2@example.com", "last_modified": "2020-02-08T03:00:46.763000Z", "icon_media_key": "8284e730-8e31-47b6-b4ab-f230e12ee089", "date_registered": "2020-02-08T03:02:10.908000Z" } ]
- プロジェクトの一覧を取得する
http://localhost/api/admin/v1/projects/
[ { "id": "1982e609-9c92-40ab-ac85-ee7f2830ab2a", "title": "すごいプロジェクト", "accounting_type": "soft", "leader": "380ac58d-1595-4614-a8e2-5e881b51d18a", "closed": false }, { "id": "5cfec77f-c466-415b-a7de-8be6b43bbc6d", "title": "DjangoでREST API作るぞ", "accounting_type": "soft", "leader": "f2b34d83-b890-45ff-aedd-1d11a92cb9f5", "closed": false }, { "id": "66c1b2b1-7376-48c1-9509-e52d568ed910", "title": "ホゲホゲプロジェクト", "accounting_type": "soft", "leader": null, "closed": false }, { "id": "da96e698-3dae-47b5-ae64-b6f5a7650387", "title": "ホゲホゲプロジェクト", "accounting_type": "soft", "leader": "380ac58d-1595-4614-a8e2-5e881b51d18a", "closed": false } ]
- 購入の一覧を取得する
http://localhost/api/admin/v1/purchases/
[ { "id": "690c4aeb-fef7-45d2-a98b-1c5f8c7af548", "title": "交通費", "description": "東京駅から草津温泉までの交通費です。", "project_id": "1982e609-9c92-40ab-ac85-ee7f2830ab2a", "evidence_media_key": "d2a85f4f-4ac5-4dcb-986e-6e988d83d3b4", "price": 5670, "returned": false, "approved": false }, { "id": "768a00ae-b643-4449-8148-418e996636c7", "title": "交際費", "description": "軽井沢ビール購入代金", "project_id": "1982e609-9c92-40ab-ac85-ee7f2830ab2a", "evidence_media_key": "d2a85f4f-4ac5-4dcb-986e-6e988d83d3b4", "price": 1862, "returned": false, "approved": false } ]
- ユーザーの一覧を取得する
http://localhost/api/admin/v1/users/