Questa documentazione è stata tradotta automaticamente dall'IA.
La funzionalità di gestione delle risorse di NocoBase converte automaticamente le collezioni e le associazioni esistenti in risorse, e include diversi tipi di operazioni predefinite per aiutare gli sviluppatori a costruire rapidamente operazioni sulle risorse REST API. A differenza delle REST API tradizionali, le operazioni sulle risorse di NocoBase non dipendono dai metodi di richiesta HTTP, ma determinano l'operazione specifica da eseguire tramite la definizione esplicita di :action.
NocoBase converte automaticamente le collezioni e le associazioni definite nel database in risorse. Ad esempio, definendo due collezioni, posts e tags:
Questo genererà automaticamente le seguenti risorse:
poststagsposts.tagsEsempi di richiesta:
| Metodo | Percorso | Operazione |
|---|---|---|
GET | /api/posts:list | Interroga lista |
GET | /api/posts:get/1 | Interroga singolo |
POST | /api/posts:create | Crea |
POST | /api/posts:update/1 | Aggiorna |
POST | /api/posts:destroy/1 | Elimina |
| Metodo | Percorso | Operazione |
|---|---|---|
GET | /api/tags:list | Interroga lista |
GET | /api/tags:get/1 | Interroga singolo |
POST | /api/tags:create | Crea |
POST | /api/tags:update/1 | Aggiorna |
POST | /api/tags:destroy/1 | Elimina |
| Metodo | Percorso | Operazione |
|---|---|---|
GET | /api/posts/1/tags:list | Interroga tutti i tags associati a un post |
GET | /api/posts/1/tags:get/1 | Interroga un singolo tag sotto un post |
POST | /api/posts/1/tags:create | Crea un singolo tag sotto un post |
POST | /api/posts/1/tags:update/1 | Aggiorna un singolo tag sotto un post |
POST | /api/posts/1/tags:destroy/1 | Elimina un singolo tag sotto un post |
POST | /api/posts/1/tags:add | Aggiungi tags associati a un post |
POST | /api/posts/1/tags:remove | Rimuovi tags associati da un post |
POST | /api/posts/1/tags:set | Imposta tutti i tags associati per un post |
POST | /api/posts/1/tags:toggle | Attiva/disattiva l'associazione dei tags per un post |
Le operazioni sulle risorse di NocoBase non dipendono direttamente dai metodi di richiesta, ma determinano le operazioni tramite definizioni esplicite di :action.
NocoBase offre una vasta gamma di tipi di operazioni predefinite per soddisfare le diverse esigenze aziendali.
| Nome Operazione | Descrizione | Tipi di Risorse Applicabili | Metodo di Richiesta | Percorso di Esempio |
|---|---|---|---|---|
list | Interroga dati di lista | Tutte | GET/POST | /api/posts:list |
get | Interroga singolo dato | Tutte | GET/POST | /api/posts:get/1 |
create | Crea nuovo record | Tutte | POST | /api/posts:create |
update | Aggiorna record | Tutte | POST | /api/posts:update/1 |
destroy | Elimina record | Tutte | POST | /api/posts:destroy/1 |
firstOrCreate | Trova il primo record, crealo se non esiste | Tutte | POST | /api/users:firstOrCreate |
updateOrCreate | Aggiorna il record, crealo se non esiste | Tutte | POST | /api/users:updateOrCreate |
| Nome Operazione | Descrizione | Tipi di Relazioni Applicabili | Percorso di Esempio |
|---|---|---|---|
add | Aggiungi associazione | hasMany, belongsToMany | /api/posts/1/tags:add |
remove | Rimuovi associazione | hasOne, hasMany, belongsToMany, belongsTo | /api/posts/1/comments:remove |
set | Reimposta associazione | hasOne, hasMany, belongsToMany, belongsTo | /api/posts/1/comments:set |
toggle | Aggiungi o rimuovi associazione | belongsToMany | /api/posts/1/tags:toggle |
I parametri operativi comuni includono:
filter: Condizioni di queryvalues: Valori da impostarefields: Specifica i campi da restituireappends: Include dati associatiexcept: Esclude i campisort: Regole di ordinamentopage, pageSize: Parametri di paginazionepaginate: Abilita la paginazionetree: Restituisce la struttura ad alberowhitelist, blacklist: Whitelist/blacklist dei campiupdateAssociationValues: Aggiorna i valori di associazioneNocoBase consente di registrare operazioni aggiuntive per le risorse esistenti. Può utilizzare registerActionHandlers per personalizzare le operazioni per tutte le risorse o per risorse specifiche.
Esempi di richiesta:
Regola di denominazione: resourceName:actionName. Utilizzi la sintassi con il punto (posts.comments) quando include le associazioni.
Se ha bisogno di fornire risorse non correlate alle collezioni, può utilizzare il metodo resourceManager.define per definirle:
I metodi di richiesta sono coerenti con le risorse generate automaticamente:
GET /api/app:getInfoPOST /api/app:getInfo (supporta GET/POST per impostazione predefinita)Utilizzi il metodo resourceManager.use() per registrare un middleware globale. Ad esempio:
Middleware di logging globale
Poter accedere al middleware o all'azione del livello resourceManager implica che la risorsa deve esistere.
ctx.action.actionName: Nome dell'operazionectx.action.resourceName: Può essere una collezione o un'associazionectx.action.params: Parametri dell'operazioneL'oggetto fonte dati corrente.
L'oggetto repository corrente.
resourceManager appartiene a una fonte dati, e le operazioni possono essere registrate separatamente per diverse fonti dati.
Per la fonte dati principale, può utilizzare direttamente app.resourceManager:
Per le altre fonti dati, può ottenere un'istanza specifica della fonte dati tramite dataSourceManager e utilizzare il resourceManager di tale istanza per le operazioni:
Se ha bisogno di eseguire le stesse operazioni su tutte le fonti dati aggiunte, può utilizzare il metodo dataSourceManager.afterAddDataSource per iterare, assicurandosi che il resourceManager di ogni fonte dati possa registrare le operazioni corrispondenti: