La estrategia es crear un recurso de la API por cada tabla, de esa manera nuestros amigos del front pueden acceder a este recurso via una peticion HTTP con los verbos GET, PUT o POST.
- Crear y activar un ambiente virtual con nombre
venvy ejecutar:
$ pip install -r requirements.txt
- En el archivo del ambiente virtual
venv/bin/activateagregar las siguientes lineas de código al fina del archivo:
export FLASK_APP="entrypoint:app"
export FLASK_ENV="development"
export APP_SETTINGS_MODULE="config.default"
- Arrancar el servidor ejecutando:
$ flask run
En este punto ya deben poder ejecutar la API.
- Relizar una peticion
GETa la URL:http://localhost:5000/api/booking/usersy deben obtener la siguiente respuesta:
{
"account_type_id": 1,
"active": true,
"address": "Carrera tal con calle x",
"city_id": 1125,
"created_at": "",
"email": "platzimaster@gmail.com",
"id": 1,
"last_name": "Master",
"lat_location": 0,
"long_location": 0,
"name": "Platzi",
"password": "123*",
"phone_number": "+573013787020",
"profile_image": "img",
"updated_at": ""
}Este es un ejemplo, la idea es que lo puedan arrancar.
- En la ruta"
http://localhost:5000/api/auth/signuppueden agregar un usuario a la base de datos.
- Se debe implementar una clase por cada tabla en el archivo
models.py - En el archivo
resources.pyse debe implementar la clase de cada recurso, tambien se debe agregar a la app:
api.add_resource(UserResource, '/api/booking/users', endpoint='users_resource')
Como pueden ver en el codigo, ahí se define la URL de la API la idea es que quede /api/booking/<nombre_tabla>
- Agregar envio de variables por la URL con el metodo
GET - Agregar BluePrint de autenticacion (Julian está trabajando en esto)
- Habilitar CORS, ya que nuestra API se va alojar en una instacia de App Engine diferente a donde va a estar la del Front End
- Determinar si usamos tokens o con la implementacion de autenticacion de Flask es suficiente.
- Cada recurso debe tener los siguientes metodos:
GET: Para traer datos al frontPOST: Para enviar datos desde el frontPUT: Para actualizar datos desde el front