ycd/manage-fastapi

Manage FastAPI August-September 2020 Roadmap

ycd opened this issue · 12 comments

ycd commented

🔨 Roadmap August-September 2020 🔨

Goals

  • Adding more templates for databases and object relatioınal mappers.
  • Instead of creating database with async sql, now the database will be up to user

Example:

manage-fastapi startproject myproject

The command we ran above will ask the user something like this to select a database.

Select a database:
[0] Postgresql, sqlite3, mysql
[1] Tortoise ORM
[2] Peewee
[3] MongoDB, Couchbase

Each selection will have unique database template.

New Features

runserver

Also thinking about showmodels to show all models also this command will came with option for request method like

showmodels --get
showmodels --post

ycd commented

With 0.1.3 added support for Multiple databases added boilerplate for each of them.

ycd commented

With (#18 ) 0.1.5, added showmodels, and runserver, i'm looking for new feature ideas:

What i 'll be working on:

  • Creating an admin-panel like Django-admin

bro add dependencies install to the project with pip when install manage-fastapi

also when creating a app it dosent work when i hit the endpoint

im working on windows if you wont to know
aiofiles==0.5.0
aiosqlite==0.15.0
aniso8601==7.0.0
async-exit-stack==1.0.1
async-generator==1.10
certifi==2020.4.5.1
chardet==3.0.4
click==7.1.2
databases==0.3.2
dnspython==1.16.0
email-validator==1.1.1
fastapi==0.57.0
graphene==2.1.8
graphql-core==2.3.2
graphql-relay==2.0.1
h11==0.9.0
idna==2.9
itsdangerous==1.1.0
Jinja2==2.11.2
manage-fastapi==0.1.51
MarkupSafe==1.1.1
motor==2.2.0
orjson==3.1.0
promise==2.3
pydantic==1.5.1
pymongo==3.11.0
python-multipart==0.0.5
PyYAML==5.3.1
requests==2.23.0
Rx==1.6.1
six==1.15.0
SQLAlchemy==1.3.19
starlette==0.13.4
typer==0.3.2
typing-extensions==3.7.4.3
ujson==3.0.0
urllib3==1.25.9
uvicorn==0.11.5
websockets==8.1
wincertstore==0.2
add a requierments.txt flie to the project

bro fix the rest of the files then when can integrate fastapi-admin to the proejct fastapi-admin demo

fastapi-admin install

i wont to help you i ll try to fix the problems and give you the new project bolierpalte ,and we can chat to see what we can do
hit me on twitter and facebook

ycd commented

Can you reformat your question?, it's hard to understand right now, wdym by fix the rest of the files then when can integrate fastapi-admin and this fastapi-admin install

Yes ,first thank you for your reply.the main issue is that the cli has some limetations when installing it ,you don't assume the developer or the user of the package have all the dependencies including fastapi it self ,and (sqlalchmy,motor,etc) so this has to be improved ,second if you working on Mac or Linux your to consider windows users in the module imports there is error including relative imports in windows when it comes to python ,also I wasn't managed to hit the endpoint of a created app ,it shows me that the route doesn't exist for example ifollwed the documentation of the v1 app and it didn't work and I had to fix the import issue and still didn't work for me again I'm working on windows, and last it has to check the targeted OS so that the script builds a bolirplate capebale on working on every operating system I will work on it just hit me on my social media accounts so that we can discuss more👌

Then we can see how we can implement the fastapi-admin to the current package

ycd commented

> also when creating a app it dosent work when i hit the endpoint

Did you imported that endpoint from your main.py, i documented that part in your api.py , first you need the import that like

from v1.api import api_router as v1_router

Then you need to incldue it

app.include_router(v1_router, prefix="v1")

> you don't assume the developer or the user of the package have all the dependencies including fastapi it self

Are you talking about the, dependencies, that exists before or when creating a new project, you want to dependencies come with Manage FastAPI

In first versions it was coming directly with the package, for an example when you run

pip install manage-fastapi

All the dependencies like FastAPI, pydantic ,uvicorn was coming as default, but i changed it because every user has different dependencies, some uses sqlalchemy some uses psycopg2 directly, some uses Tortoise, now it creates a requirements.txt when you start a project.

> Then we can see how we can implement the fastapi-admin to the current package

I don't think it's necessary by default since it's easy to implement, afaik from the documentation of fastapi-admin, and it's only for Tortoise ORM, nothing more.

> it didn't work and I had to fix the import issue and still didn't work for me again

I'm aware of that see:This video it's a bug in Python's importing system for now, i recorded this video for bug report in Encode/Uvicorn, "try setting the path to its parent directory. I believe this is less of a Uvicorn problem and more of a Python path issue",

> I'm working on windows, and last it has to check the targeted OS so that the script builds a bolirplate capebale on working on every operating system

It is, i used Pathlib for Path operations which is known as OS independent library

> I will work on it just hit me on my social media accounts so that we can discuss more

I'm not using social media but you can hit me on Gitter