This repository is a Software of Development with Python.
Using pipenv preferably.
Using FastAPI, Hypercorn,etc preferably.
Using SQLite3, PostgreSQL MySQL, MongoDB,etc.
Using Swagger UI.
$ git clone https://github.com/DanielArturoAlejoAlvarez/rest-fastapi.git [NAME APP] $
pipenv shell $ pipenv python src/app.py
Follow the following steps and you're good to go! Important:
DATABASE_URI='mysql+pymysql://{}:{}@{}/{}'.format(DB_USER,DB_PASSWORD,DB_HOST,DB_NAME)
from fastapi import FastAPI
from models.City import *
app=FastAPI()
db=[]
@app.get('/')
def index():
return {
'msg': 'WELCOME TO FASTAPI'
}
from controllers.CityController import *
...
from pydantic import BaseModel
class City(BaseModel):
name: str
timezone: str
...
...
@app.get('/cities')
def get_cities():
results=[]
for city in db:
r=requests.get(f'http://worldtimeapi.org/api/timezone/{city["name"]}/{city["timezone"]}')
current_time=r.json()['datetime']
results.append({
'name': city["name"],
'timezone': city["timezone"],
'current_time': current_time
})
return results
@app.get('/cities/{city_id}')
def get_city(city_id: int):
return db[city_id-1]
@app.post('/cities')
def create_city(city: City):
db.append(city.dict())
return db[-1]
@app.get('/cities/{city_id}')
def get_city(city_id: int):
return db[city_id-1]
@app.post('/cities')
def create_city(city: City):
db.append(city.dict())
return db[-1]
Bug reports and pull requests are welcome on GitHub at https://github.com/DanielArturoAlejoAlvarez/rest-fastapi. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.
The gem is available as open source under the terms of the MIT License.