Metadata-Version: 2.1
Name: MsCoppel
Version: 1.4.2
Summary: Libreria para microservicios basados en mensajes desdes de una cola de mensajes
Home-page: UNKNOWN
Author: Enoi Barrera Guzman
Author-email: zafiro3000x@gmail.com
License: UNKNOWN
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Description-Content-Type: text/markdown
Requires-Dist: kafka-python (==1.4.6)
Requires-Dist: Logbook
Requires-Dist: asyncio-nats-client (==0.9.2)
Requires-Dist: jaeger-client (==4.1.0)
Requires-Dist: fluent-logger (==0.9.3)
Requires-Dist: Flask (==1.1.1)

# MsCoppel

Paquete para implmentar microservicios basados en mensajes, utilizando kafka, para su implementacion se
utiliza decoradores sobre las funciones, dependiendo de las acciones que se quieren implementar.

## Instalacion

``` shell
$ pip install MsCoppel
```

## Metodos disponibles

* List
* Get
* Create
* Update
* Delete

En caso de que no se definan mas elementos todos las peticiones siempre seran escuchadas por el metodo **Listener**.

## Ejemplo

 ```python

from MsCoppel import Microservices, Options, Types, MsManager, ErrorMs

@Manager.Define(
    Options(
        'demo', # Nombre de la aplicacion
        'plantilla', # nombre del microservicio
        'v1', # Version del microservicio
        ['kafka:9092'], # Coleccion de servidores
        Types.WORKER, True
    )
)
class Demo(microservices):

    def smoketest(self):
        """
            Metodo que se utiliaza para validar el servicio
            desde una consulta REST.

            su valor de retorno siempre es logico.
        """
        True

    @MsManager.Errors
    def misErrores(self):
        return { '-12': 'Error definido por el usuario' }

    @MsManager.List
    def listar():
        pass

    @MsManager.Get
    def cosa(self, data, auth, id):
        raise ErrorMs(-12)

    @MsManager.Create
    def nuevo(self, data, auth):
        pass

    @MsManager.Update
    def actualizar(self, data, auth):
        pass

    @MsManager.Delete
    def eliminar(self, data, auth):
        pass

    @MsManager.Listener
    def lister(self, data, auth):
        return data

```

## Errores

Para retornar un error se utiliza el estandar de python que es **raise** regresando un objeto error perzonalizado de la clase **ErrorMs**, tal como se muestra en el siguiente ejemplo

```python
@MsManager.Get
    def cosa(self, data, auth, id):
        raise ErrorMs(-12)
```

> Tome en cuenta que solo se indica el numero del error previamente registrados por el decorador **@MsManager.Errors**.



