Puedes aprovechar la arquitectura conectable de esta librería eligiendo diferentes implementaciones para los servicios y/o agregando nuevos roles de servicio. Un servicio es solo una clase de Javascript que hereda de PublicService
(Servicio Público), PrivateService
(Servicio Privado) o LocalService
(Servicio Local), y contiene métodos públicos.
Puede depender de otros servicios a través de nuestro marco de inyección de dependencia incorporado y también puede ser configurado a través de las opciones/archivo de configuración de Maker.
{% hint style="info" %} La información que se encuentra descripta debajo, es para desarrolladores que deseen agregar a dai.js, pero también puedes agregar servicios a través de plugins. {% endhint %}
Aquí se encuentran los pasos para agregar un nuevo servicio llamado ExampleService (Servicio Ejemplo):
\(1\) En el directorio del src, crea un archivo ExampleService.js en uno de los subdirectorios.
\(2\) En src/config/DefaultServiceProvider.js
, importa ExampleService.js y agrégalo a la matriz \\\\_services
.
\(3\) Crea una clase llamada ExampleService en ExampleService.js
\(4\) El servicio debe extender uno de los siguientes:
PrivateService
(Servicio Privado) - requiere tanto una conexión de red como autenticaciónPublicService
(Servicio Público) - requiere solo una conexión de redLocalService
(Servicio Local) - no tiene requisitosPara más información, lee la sección del Ciclo de Vida del Servicio que se encuentra debajo.
\(5\) En el constructor, llama al constructor de la clase padre con los siguientes argumentos:
\(6\) Agrega los métodos públicos necesarios.
//código de ejemplo del ExampleService.js para los pasos 3-6
import PublicService from '../core/PublicService';
export default class ExampleService extends PublicService {
constructor (name='example') {
super(name, ['log']);
}
test(){
this.get('log').info('test');
}
\(7\) Si tu servicio será utilizado para reemplazar un servicio que se encuentre por defecto \(el listado completo de los roles de los servicios por defecto pueden encontrarse en src/config/ConfigFactory
\), entonces, saltea este paso. De lo contrario, deberás agregar un nuevo rol de servicio \(e.j. "example" - ejemplo\) a la matriz ServiceRoles (Roles de Servicio) en src/config/ConfigFactory
.