# Univer Bases API

> Découvrez comment utiliser l’API Facade dans une application Univer Bases.

- Human documentation: [https://docs.univer.ai/fr-FR/guides/bases/features/core/bases-api](https://docs.univer.ai/fr-FR/guides/bases/features/core/bases-api)

- Agent Markdown: [https://docs.univer.ai/fr-FR/guides/bases/features/core/bases-api.md](https://docs.univer.ai/fr-FR/guides/bases/features/core/bases-api.md)

- Requested language: `fr-FR`

- Content language: `fr-FR`

- Documentation version: `1.2.0`

- Source: [bases/features/core/bases-api.fr-FR.mdx](https://github.com/dream-num/documentation/blob/dev/content/guides/bases/features/core/bases-api.fr-FR.mdx)

---

L’API Facade fournit une couche destinée aux applications au-dessus du modèle Bases. Utilisez-la pour les opérations courantes, comme la création de bases, de tables, de champs, d’enregistrements, de vues, de filtres, de tris, de groupes et de sélections, ainsi que pour la navigation dans l’interface utilisateur.

> [!WARNING: Attention]
> Les mutations du modèle Base sont synchrones. Les méthodes d’activation UI renvoient des promesses et doivent être attendues.

## Activer les points d’entrée Facade

Importez le point d’entrée Facade de chaque fonctionnalité Bases utilisée par votre application :

```ts
import { FUniver } from '@univerjs/core/facade'
import '@univerjs-pro/bases/facade'
import '@univerjs-pro/bases-ui/facade'
```

Créez l’objet API après avoir enregistré l’instance Univer et les extensions requises :

```ts
const univerAPI = FUniver.newAPI(univer)
```

## Créer et lire une base

Utilisez `createBase` pour créer une unité Base au moyen de la couche Facade. Dans le code de configuration de plus bas niveau, créez l’unité avec `univer.createUnit(UniverInstanceType.UNIVER_BASE, snapshot)`.

```ts
const base = univerAPI.createBase({
  id: 'base-demo',
  name: 'Base Demo',
})

const activeBase = univerAPI.getActiveBase()
const sameBase = univerAPI.getBase(base.getId())
```

## Créer une table

```ts
const table = base.insertTable('Tasks', { primaryFieldName: 'Title' })
const status = table.addField('Status', univerAPI.Enum.BaseFieldType.SingleSelect)
```

## Manipuler les enregistrements

```ts
const record = table.addRecord({
  Title: 'Write docs',
  Status: 'In progress',
}, univerAPI.Enum.BaseFieldKeyEnum.Name)

record.setValue(status.getId(), 'Done')
```

## Manipuler l’état de l’interface utilisateur

`@univerjs-pro/bases-ui/facade` ajoute des API d’interface utilisateur pour l’activation des tables et des vues, la sélection, le défilement, la modification et les panneaux.

```ts
const baseUI = univerAPI.getBaseUI()
const view = table.getViews()[0]
if (!view) throw new Error('No table view')
await baseUI.activateTable(table.getId())
await baseUI.activateView(view.getId())
baseUI.setSelection({
  type: 'grid-record',
  tableId: table.getId(),
  viewId: view.getId(),
  recordId: record.getId(),
})
```

## Référence

* [API générale](https://docs.univer.ai/fr-FR/guides/bases/features/core/general-api.md)
* [Référence de la Facade Bases](https://docs.univer.ai/fr-FR/reference/facade/base.md)
* [Modèle d’instantané Base](https://docs.univer.ai/fr-FR/guides/bases/model/base-snapshot.md)
* [Tables, champs et enregistrements](https://docs.univer.ai/fr-FR/guides/bases/model/tables-fields-records.md)
* [Vues](https://docs.univer.ai/fr-FR/guides/bases/model/views.md)
