Python + FastAPI
asynchronous REST API. Authentication is implemented using JWT. Each user can add, modify and access their own notes ONLY using a valid JSON Web Token
Database
=> Postgres + asyncpgDatabase migrations
=> AlembicData validation
=> PydanticORM
=> SQLAlchemyAuthentication and authorization
=> Python Jose
Run make run
or docker compose up --build
in root folder to apply all necessary migrations and start the project.
Swagger documentation with request/response body examples available at http://127.0.0.1:8000/docs
after project startup
0.0.0.0:8080/auth
=>
POST=>
Create new user0.0.0.0:8080/auth/token
=>
POST=>
Log in to get access token
0.0.0.0:8080/api/v1
=>
POST=>
Add note to user0.0.0.0:8080/api/v1
=>
GET=>
Get all notes for user0.0.0.0:8080/api/v1/{note_id}
=>
GET=>
Get user's note by note id0.0.0.0:8080/api/v1/{note_id}
=>
PUT=>
Update user's note by node id0.0.0.0:8080/api/v1/{note_id}
=>
DELETE=>
Delete user's note by note id