createModel
La función createModel crea un nuevo modelo Entity (un content type) con su lista de campos. Es el equivalente en JavaScript/TypeScript del endpoint REST POST /model/entity.
Ejemplo:
// Usando el cliente creado previamenteconst { id } = await client.createModel({ name: 'Article', fieldList: [ { name: 'title', type: 'short-text', validations: [{ name: 'required' }, { name: 'max-length', customArgs: { length: 120 } }] }, { name: 'body', type: 'long-text' }, { name: 'tags', type: 'short-text', isArray: true }, { name: 'writtenBy', type: 'relation', relatedModelId: authorId }, { name: 'size', type: 'enum', relatedModelId: sizeEnumId }, ],});console.log(id);Interface
export interface ApiClient { createModel: (params: CreateEntityParams) => Promise<SaveModelResponse>; // ... otros métodos}
export interface CreateEntityParams { name: string; fieldList: FieldSpec[];}
export interface FieldSpec { id?: string; // omítelo al crear — el servidor asigna uno name: string; type: FieldType; // 'short-text' | 'long-text' | 'number' | 'date' | 'date-time' // | 'media' | 'boolean' | 'color' | 'relation' | 'enum' relatedModelId?: string; // obligatorio para 'relation' / 'enum' isArray?: boolean; // true → el campo almacena una lista (por defecto false) validations?: Validation[];}
export interface Validation { name: string; // 'required' | 'unique' | 'min-length' | 'max-length' | 'media-type' customArgs?: any;}
export interface SaveModelResponse { id: string;}Parámetros
| Nombre | Descripción |
|---|---|
name | El nombre del modelo. Debe cumplir las reglas de nombres y ser único entre los modelos del proyecto. |
fieldList | Los campos de la entidad, en orden. Se requiere al menos uno. Consulta la referencia de tipos de campo y validaciones. |
Salida
La función devuelve una Promise<SaveModelResponse> que se resuelve con el objeto con el id del nuevo modelo. Úsalo
como relatedModelId de un campo relation en otro modelo, o como contentType al crear contenido de este tipo con
createContent.
En caso de fallo, lanza un ApiClientError tipado (por ejemplo VALIDATION_ERROR, NOT_FOUND).