API
Le API per il recupero e l’interazione con le risorse sono definite:
- nei layout
- nelle tab per quanto riguarda i modali
- nei campi di tipo select
La definizione per layout e tab è la medesima e più complessa di quella delle select perchè deve gestire tutte le tipologie di chiamate, non solo le GET
export type DAGA_api_list = {
get?: DAGA_get_api[]
post?: DAGA_post_api
put?: DAGA_put_api
patch?: DAGA_patch_api
delete?: DAGA_delete_api
}
export type DAGA_get_api = {
id: string, //id univoco, utilizzato per salvare il risultato dell'api
adapter: string //indica quale adapter utilizzare per transformare DAGA_api in api consumabile
baseUrl?: string,
endpoint: string,
executionPriority?: number //numero intero decimale che indica l'ordine di esecuzione
fetchOnEmptyFilters?: boolean //indica se l'api puo fetchare anche senza filtri
fields: DAGA_api_field[],
filters?: DAGA_api_filters
sortings?: DAGA_api_sortings
mapFields?: FormField[],
enableSharing?: boolean //indica se condividere il risultato dell'api, default false
}
export type DAGA_[post/put/patch]_api = {
id: string,
adapter: string,
baseUrl?: string,
endpoint: string,
method: "post"
excludeFields?: string[]
mapFields?: FormField[]
}
export type DAGA_delete_api = {
id: string,
adapter: string,
baseUrl?: string,
endpoint: string,
method: "delete"
}ProprietĂ comuni
- id: id univoco, utilizzato per salvare il risultato dell’api
- adapter: indica quale adapter utilizzare per trasformare DAGA_api in api consumabile
- baseUrl: parte dell’url rappresentante il dominio se diverso dal default
- endpoint: endpoint da chiamare
GET
- executionPriority: numero intero decimale che indica l’ordine di esecuzione, più basso è il numero prima verrà eseguita, API con la stessa priorità potrebbero essere eseguite contemporaneamente
- fetchOnEmptyFilters: indica se l’api puo fetchare anche senza filtri
- fields: lista dei campi richiesti in risposta
- filters: filtri da applicare alla chiamata
- sortings: ordinamenti da applicare alla chiamata
- mapFields: utilizzato per “rinominare” i campi di una form se per qualche motivo sono stati definiti in modo diverso rispetto a quanto si aspetta l’API
- enableSharing: indica se condividere il risultato dell’api, default false
POST, PUT & PATCH
La differenza operativa delle 3 chiamate è che la POST invia sempre tutto il contenuto della form al backend ed è utilizzata per l’azione di create, la PUT è simile ma utilizzata per update mentre la PATCH è sempre utilizzata per update ma invia solamente i dati modificati
- method: è il method della chiamata HTTP, “post”, “put” o “patch”
- excludeFields: lista di campi della form da escludere dal body della chiamata
- mapFields: utilizzato per “rinominare” i campi di una form se per qualche motivo sono stati definiti in modo diverso rispetto a quanto si aspetta l’API
DELETE
- method: è il method della chiamata HTTP in questo caso può essere solo “delete”