This is a simple REST API built with Python and FastAPI and SQLAlchemy for CRUD operations (Create, Read, Update, Delete) on users. FastAPI is a powerful web framework for building APIs.
Clone this repository to your local machine:
git clone https://github.com/BaseMax/SimpleFastPyAPI
Change into the project directory:
cd SimpleFastPyAPI
Build Docker:
docker build -t SimpleFastPyAPI .
Run the application:
docker run -p 8000:8000 -v $(pwd)/users.db:/app/users.db SimpleFastPyAPI
Install the project dependencies:
pip install -r requirements.txt
Run the application directly without Docker:
uvicorn main:app --reload
The application will start and be available at http://localhost:8000.
GET /users
Returns a list of all users in the system:
curl http://localhost:8000/users/ -H "Accept: application/json"
Response:
[ { "email": "alice@example.com", "id": 1, "password": "password1", "name": "Alice" }, { "email": "bob@example.com", "id": 2, "password": "password2", "name": "Bob" }, { "email": "charlie@example.com", "id": 3, "password": "password3", "name": "Charlie" } ]
GET /users/{user_id}
Returns details for a specific user with the given user_id:
curl http://localhost:8000/users/1 -H "Accept: application/json"
Response:
{ "email": "alice@example.com", "id": 1, "password": "password1", "name": "Alice" }
POST /users
Adds a new user to the system. The request body should include a JSON object with the following properties:
name
(string, required): the name of the useremail
(string, required): the email address of the userpassword
(string, required): the password for the user
curl -X POST http://localhost:8000/users/ -H 'Content-Type: application/json' -d '{"name":"Ali","password":"123456", "email": "AliAhmadi@gmail.com"}'
Response:
{ "email": "AliAhmadi@gmail.com", "password": "123456", "id": 4, "name": "Ali" }
PUT /users/{user_id}
Updates an existing user with the given user_id. The request body should include a JSON object with the following properties:
name
(string): the new name for the useremail
(string): the new email address for the user
curl -X PUT http://localhost:8000/users/1 -H "Accept: application/json" -d '{"name": "Reza", "email": "reza@yahoo.com"}'
Response:
{"message": "User updated successfully"}
DELETE /users/{user_id}
Deletes the user with the given user_id:
curl -X DELETE http://localhost:8000/2
Response:
{"message": "User deleted successfully"}
This project is licensed under the GPL-3.0 License - see the LICENSE file for details.
Copyright 2023, Max Base