Saltar a contenido

Recursos (Class Resource)

Eliminado

Class Resource fue eliminada de esta versión. Este fragmento de código se mantiene solo como ejemplo.

No se recomienda seguir este apartado, para esta versión de Callisto.

Crea CRUD's con facilidad a la manera OOP con la clase base ResourceModel que le permite implementar métodos rápidamente.

Nota

Se recomienda utilizar el comando crud para agilizar este proceso.

Si estás familiarizado con Flask-RESTful y quieres crear rápidamente una aplicación CRUD, llena de funcionalidades y recursos, y además soportas POO puede que quieras usar esta clase basada en Recursos.

Todo lo que tenemos que hacer es crear una clase que herede de ResourceModel.

from app.core.resource_model import ResourceModel
from app.common.http.response import response
from app.common.http.status import HTTPStatus
...

class ViewLocales(ResourceModel):
    async def get(self, request: Request, item_id: Optional[str] = None):
        return response(200, HTTPStatus.SUCCESS)

    async def post(self, request: Request, body: LocalesCreateDto):
        return response(201, HTTPStatus.CREATED)

    async def put(self, request: Request, item_id: str, body: LocalesUpdateDto):
        return response(200, HTTPStatus.UPDATED)

    async def delete(self, request: Request, item_id: str):
        return response(200, HTTPStatus.SUCCESS)

Importante

Cuando el BackEnd inicie, intentará ubicar un archivo llamado urls.py en la carpeta app/modules/ y el nombre del módulo que estás creando, ejemplo:

1
2
3
4
5
6
/app
├── modules
│   ├── locales
│   │   ├── __init__.py
│   │   ├── urls.py
│   ├── __init__.py

CRUD usando Recursos (Class Resource)

Recuerda

Versiones anteriores de Callisto utilizaban FastApi-RESTful, sin embargo fue eliminada de esta versión, si te interesa seguir usando Clases basadas en Recursos en FastAPI, te recomendamos usar FastAPI Utilities, un librería más actualizada.

Callisto proporciona un generador que automágicamente crea todo el código boilerplate para ayudarnos a evitar hacer todo esto de forma manual (y puede que propenso a errores), y hacer la experiencia del desarrollador mucho más simple.

Lectura recomendada