RESTful APIとWebビューを提供するブログアプリケーション
デモサイトURL: https://django-blog-ox35.onrender.com
APIドキュメント (Swagger UI): https://django-blog-ox35.onrender.com/api/v1/schema/swagger-ui/
- Django REST Framework
- JWT認証 (SimpleJWT)
- PostgreSQL
- Swagger UI自動生成
- djangorestframework-camel-case
-
✅ 完成済み
- Web版ブログ機能
- REST API(認証・CRUD)
- JWT認証システム
- CORS設定(Vercel対応)
- 検索機能
-
🚧 開発中
POST /register/
- 新規登録POST /login/
- ログイン(JWT発行)POST /logout/
- ログアウトGET /user/
- ユーザー情報取得
GET /
- 記事一覧 (検索対応:?search=keyword)POST /
- 記事作成(要認証)GET /{slug}/
- 記事詳細 (slugで取得)PUT /{slug}/
- 記事更新(要認証・作者のみ)DELETE /{slug}/
- 記事削除(要認証・作者のみ)POST /{slug}/publish/
- 記事公開 (要認証・作者のみ)POST /{slug}/unpublish/
- 記事非公開 (要認証・作者のみ)
詳細な仕様はSwagger UIを参照
pip install -r requirements.txt
python manage.py migrate
python manage.py runserver
# Django設定
SECRET_KEY=your-secret-key-here # 必須 生成方法は下記参照
DEBUG=True
ALLOWED_HOSTS=localhost,127.0.0.1
DATABASE_URL=sqlite:///db.sqlite3
# 管理画面
ADMIN_URL=admin # 開発環境では'admin'でOK
# JWT認証
JWT_SECRET_KEY=your-jwt-secret-key-here # 必須:JWT署名用 (SECRET_KEYとは別)
# CORS設定
CORS_ALLOWED_ORIGINS=http://localhost:3000,http://127.0.0.1:3000
- SECRET_KEY - 本番用に再生成
- DEBUG - False
- ALLOWED_HOSTS - your-site.onrender.com
- DATABASE_URL - PostgreSQLの接続URL
- ADMIN_URL - 推測困難な文字列に変更
- JWT_SECRET_KEY - 本番用に別途生成 (SECRET_KEYとは異なる値を推奨)
- CORS_ALLOWED_ORIGINS - your-site.vercel.app
python manage.py shell
>>> from django.core.management.utils import get_random_secret_key
>>> print(get_random_secret_key())
- ページネーションAPI
- コメント機能API
- 画像アップロードAPI
- タグ・カテゴリAPI
- いいね機能API
keito-code