flask-api-example/README.md

84 lines
1.4 KiB
Markdown
Raw Permalink Normal View History

2018-02-09 00:29:15 +01:00
### Microframework Web
2018-02-09 00:08:02 +01:00
- **Flask**
### Base de datos
- **Flask-SQLAlchemy**: ORM
- **Flask-Migrate**: Añade herramientas para gestionar nuestra base de datos.
- **Flask-Script**: Creación de comandos personalizados
- **Faker**: Generador de información falsa
### API Rest
- **Flask-restplus**: Nos ayuda con las peticiones y autodocumentación
- **Flask-JWT**: Identificación básica.
- **Flask-marshmallow**: Convertirá los objetos ORM en JSON.
### Herramientas de desarrollo
2018-02-06 23:08:25 +01:00
2018-02-09 00:08:02 +01:00
- **httpie**: Cliente de API Rest para pruebas.
- **python-dotenv**: Implementación de un archivo de configuración.
2018-02-09 00:29:15 +01:00
### Instalación
```bash
pipenv install flask Flask-SQLAlchemy Flask-Migrate Flask-script Faker
2018-02-11 18:10:55 +01:00
pipenv run python3 models.py db init
pipenv run python3 models.py db migrate
pipenv run python3 models.py db upgrade
pipenv run python3 fake_data.py
2018-02-09 00:29:15 +01:00
```
2018-02-11 18:10:55 +01:00
### Ejecución
```bash
pipenv run python3 app.py
```
2018-02-09 00:29:15 +01:00
2018-02-09 00:08:02 +01:00
## Peticiones
2018-02-06 23:08:25 +01:00
### GET
2018-02-09 00:08:02 +01:00
```bash
2018-02-06 23:08:25 +01:00
http GET localhost:5000/api/v1/user
2018-02-09 00:08:02 +01:00
```
```bash
http GET localhost:5000/api/v1/user/{id}
```
```bash
http GET localhost:5000/api/v1/notice
```
2018-02-06 23:08:25 +01:00
2018-02-09 00:08:02 +01:00
```bash
http GET localhost:5000/api/v1/notice/{id}
```
2018-02-06 23:08:25 +01:00
2018-02-09 00:08:02 +01:00
```bash
http GET localhost:5000/api/v1/notice/{id}/comments
```
### POST
```bash
2018-02-12 22:37:03 +01:00
http POST localhost:5000/api/v1/notice
2018-02-09 00:08:02 +01:00
```
```bash
2018-02-12 22:37:03 +01:00
http POST localhost:5000/api/v1/notice/{id}/comments
2018-02-09 00:08:02 +01:00
```
### PATCH
```bash
2018-02-12 22:37:03 +01:00
http PATCH localhost:5000/api/v1/notice/{id}
2018-02-09 00:08:02 +01:00
```
2018-02-06 23:08:25 +01:00
2018-02-09 00:08:02 +01:00
### DELETE
2018-02-06 23:08:25 +01:00
2018-02-09 00:08:02 +01:00
```bash
2018-02-12 22:37:03 +01:00
http DELETE localhost:5000/api/v1/notice/{id}
2018-02-09 00:08:02 +01:00
```