# TotalAPI y Componentator límites de servicio

> Verificar la rama de TotalAPI y el uso local de Componentator sin realizar llamadas de servicio externas.

Framework: total5
Product: Total.js 5 (total5@0.0.19)
Language: es
Content-SHA256: 79b0f447432990052789b58e1b70d8a457fbe19c11fd115039075ee8f20b2707
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: total5-installed@total5@0.0.19
Review: not-recorded

`TotalAPI(operation, data)` Los delegados a `API('TAPI', operation, data)`El conductor integrado envía solicitudes al punto final regional seleccionado por `CONF.$tapiurl`Con el uso de un token configurado como `CONF.secret_totalapi`. `.promise()` y `.callback()` Utilice el mismo constructor de API como otros conductores. `$tapi:false`operaciones distintas a las especiales del conductor. `check` La operación no funciona localmente con `totalapi_inactive`.

`COMPONENTATOR(name, components, removeprev=true, attrs='')` determina un nombre de archivo público, almacena su URL en `REPO[name]` y lo capta desde Componentator sólo cuando el archivo está ausente. con `removeprev:true`, los archivos que corresponden más antiguos pueden ser eliminados. el evento `componentator` recibe los metadatos del nombre/componente antes de la búsqueda. Esta función vuelve antes de que su sistema de archivos / descarga se haya terminado; solo el repo URL no es prueba de éxito de descarga.

Para recursos de frontend incluidos localmente, servir archivos conocidos evita depender de la disponibilidad de bundles remotos. Para una integración real con TotalAPI o Componentator, verifica por separado tu servicio exacto, las credenciales, el comportamiento de la red y el contenido devuelto. Estos servicios son opcionales y no son dependencias necesarias para arrancar una aplicación Total.js nativa.

```text config
$tapi : false
```

```js controllers/remote.js
exports.install = function() {
	ROUTE('GET /disabled-api/', async function($) {
		try { await TotalAPI('forge-fixture-no-service', {}).promise(); $.json({ unexpected: true }); }
		catch (e) { $.json({ error: String(e) }); }
	});
	ROUTE('GET /cached-componentator/', function($) {
		var components = 'forge-local-fixture';
		var relative = 'ui-' + components.makeid() + '.min.js';
		F.Fs.writeFileSync(PATH.public(relative), '/* local fixture */');
		COMPONENTATOR('fixture', components, false);
		$.json({ url: REPO.fixture, expected: '/ui-' + components.makeid() + '.min.js' });
	});
};
```
