Metadata-Version: 2.4
Name: fastapi-scaff
Version: 0.1.0
Summary: This is a fastapi scaff.
Author-email: axiner <atpuxiner@163.com>
Project-URL: Homepage, https://github.com/atpuxiner/fastapi-scaff
Classifier: Programming Language :: Python :: 3.11
Classifier: Operating System :: OS Independent
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

# fastapi-scaff

## What is this?

- by: axiner
- fastapi-scaff
- This is a fastapi scaff.
    - new project
    - add api
    - about project:
        - auto init project (conf, db, log...)
        - auto register router
        - auto register middleware
        - ...
    - more documents: [请点击链接](https://blog.csdn.net/atpuxiner/article/details/144291336?fromshare=blogdetail&sharetype=blogdetail&sharerId=144291336&sharerefer=PC&sharesource=atpuxiner&sharefrom=from_link)

## Project structure

- ASM: ASM模式
    - A api
    - S service(&schema)
    - M model
- 调用过程: main.py(initializer) -> (middleware) - api - service(&schema) - (model)
- 结构如下: (命名经过多次修改敲定，简洁易懂)
  ```
  └── fastapi-scaff
      ├── app                         (应用)
      │   ├── api                     ├── (api)
      │   │   └── v1                  │   └── (v1)
      │   ├── initializer             ├── (初始化)
      │   │   ├── conf                │   ├── (配置)
      │   │   ├── db                  │   ├── (数据库)
      │   │   ├── log                 │   ├── (日志)
      │   │   └── ...                 │   └── (...)
      │   ├── middleware              ├── (中间件)
      │   ├── model                   ├── (数据模型)
      │   ├── schema                  ├── (数据结构)
      │   ├── service                 ├── (业务逻辑)
      │   ├── utils                   ├── (utils)
      │   └── main.py                 └── (main.py)
      ├── config                      (配置目录)
      ├── deploy                      (部署目录)
      ├── docs                        (文档目录)
      ├── logs                        (日志目录)
      ├── tests                       (测试目录)
      ├── .gitignore
      ├── LICENSE
      ├── README.md
      ├── requirements.txt
      └── runserver.py
  ```

## Installation

This package can be installed using pip (Python>=3.11):
> pip install fastapi-scaff

## Scaff usage

- 1）help document
    - `fastapi-scaff -h`
- 2）new project
    - `fastapi-scaff new <myproj>`
- 3）add api
    - `cd to project root dir`
    - `fastapi-scaff add <myapi>`

## Project run

- 1）cd to project root dir
- 2）modify the configuration, such as for the database
- 3）`pip install -r requirements.txt`
- 4）`python runserver.py`
    - more parameters see:
      - about uvicorn: [click here](https://www.uvicorn.org/)
      - about gunicorn: [click here](https://docs.gunicorn.org/en/stable/)

## License

This project is released under the MIT License (MIT). See [LICENSE](LICENSE)
