Ce document a été traduit par IA. Pour des informations précises, veuillez consulter la version anglaise.
APIResource
Une ressource API générique pour effectuer des requêtes basées sur des URL, adaptée à n'importe quelle interface HTTP. Elle hérite de la classe de base FlowResource et l'étend avec la configuration de requête et la méthode refresh(). Contrairement à MultiRecordResource et SingleRecordResource, APIResource ne dépend pas d'un nom de ressource ; elle effectue des requêtes directement par URL, ce qui la rend adaptée aux interfaces personnalisées, aux API tierces et à d'autres scénarios.
Méthode de création : ctx.makeResource('APIResource') ou ctx.initResource('APIResource'). Vous devez appeler setURL() avant l'utilisation. Dans le contexte RunJS, ctx.api (APIClient) est automatiquement injecté, il n'est donc pas nécessaire d'appeler setAPIClient manuellement.
Scénarios d'utilisation
Capacités de la classe de base (FlowResource)
Toutes les ressources possèdent les éléments suivants :
Configuration de la requête
Format d'URL
- Style de ressource : Supporte les raccourcis de ressources NocoBase, tels que
users:listouposts:get, qui seront concaténés avec labaseURL. - Chemin relatif : par ex.,
/api/custom/endpoint, concaténé avec labaseURLde l'application. - URL complète : Utilisez des adresses complètes pour les requêtes multi-origines (cross-origin) ; la cible doit avoir le CORS configuré.
Récupération des données
Exemples
Requête GET de base
URL de style ressource
Requête POST (avec corps de requête)
Écoute de l'événement refresh
Gestion des erreurs
En-têtes de requête personnalisés
Remarques
- Dépendance ctx.api : Dans RunJS,
ctx.apiest injecté par l'environnement ; l'appel manuel àsetAPIClientest généralement inutile. S'il est utilisé dans un scénario sans contexte, vous devez le définir vous-même. - Refresh signifie requête :
refresh()initie une requête basée sur la configuration actuelle ; la méthode, les paramètres, les données, etc., doivent être configurés avant l'appel. - Les erreurs ne mettent pas à jour les données : En cas d'échec,
getData()conserve sa valeur précédente ; les informations d'erreur peuvent être récupérées viagetError(). - Comparaison avec ctx.request : Utilisez
ctx.request()pour des requêtes simples et uniques ; utilisezAPIResourcelorsque des données réactives, des événements et une gestion de l'état d'erreur sont requis.
Liens connexes
- ctx.resource - L'instance de ressource dans le contexte actuel
- ctx.initResource() - Initialiser et lier à
ctx.resource - ctx.makeResource() - Créer une nouvelle instance de ressource sans liaison
- ctx.request() - Requête HTTP générale, adaptée aux appels simples et uniques
- MultiRecordResource - Pour les collections/listes, supporte le CRUD et la pagination
- SingleRecordResource - Pour les enregistrements uniques

