# TotalAPI și limitele de serviciu Componentator

> Verificați reutilizarea ramurilor TotalAPI și Componentator local fără a face apeluri de serviciu externe.

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

`TotalAPI(operation, data)` Delegatii pentru `API('TAPI', operation, data)`Conducătorul integrat trimite cererile la punctul final regional selectat de `CONF.$tapiurl`utilizând un token configurat, cum ar fi `CONF.secret_totalapi`. `.promise()` şi `.callback()` utilizează același constructor API ca și ceilalți conducători. `$tapi:false`Operaţiuni diferite decât operaţiunile speciale ale şoferului `check` Operaţiunile nu au loc la `totalapi_inactive`.

`COMPONENTATOR(name, components, removeprev=true, attrs='')` determină un nume de fișier public, stocă URL-ul său în `REPO[name]` și îl obține din Componentator numai atunci când fișiera este absentă. cu `removeprev:true`, fișele mai vechi pot fi șterse. evenimentul `componentator` primește numele / metadata componentului înainte de descărcare. Această funcție se întoarce înainte ca sistemul de fișiere async / munca de încărcare să fie finalizată; singurul URL repo nu este dovada succesului descărcării.

Pentru resursele frontend livrate local, servirea fișierelor cunoscute evită dependența de disponibilitatea bundle-urilor la distanță. Pentru o integrare reală cu TotalAPI sau Componentator, verifică separat serviciul exact, credențialele, comportamentul rețelei și conținutul returnat. Aceste servicii sunt opționale și nu sunt dependențe necesare pentru a porni o aplicație Total.js nativă.

```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' });
	});
};
```
