Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

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.

License

Notifications You must be signed in to change notification settings

BaseMax/SimpleFastPyAPI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Simple FastAPI Py

My Awesome FastAPI Project

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.

Installation

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.

API Endpoints

Retrieve a list of users:

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"
    }
]

Retrieve details for a specific user:

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"
}

Add a new user

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 user
  • email (string, required): the email address of the user
  • password (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"
}

Update an existing user

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 user
  • email (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 a user

DELETE /users/{user_id}

Deletes the user with the given user_id:

curl -X DELETE http://localhost:8000/2

Response:

{"message": "User deleted successfully"}

License

This project is licensed under the GPL-3.0 License - see the LICENSE file for details.

Copyright 2023, Max Base

About

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.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  
Morty Proxy This is a proxified and sanitized view of the page, visit original site.