Usare facilmente l’API REST di Qodly

Tradotto automaticamente da Deepl

Qualche mese fa abbiamo annunciato che Qodly Studio è ora disponibilesu per tutti i nostri partner Silver (e superiori).

Qodly Studio per 4D è completamente integrato in 4D, consentendo a 4D Server di ospitare la vostra applicazione sia con pagine desktop che web.

Qodly Studio è accessibile anche su Qodly, come parte della nuova offerta SaaS di 4D. Questa innovativa soluzione ibrida low-code è progettata specificamente per le applicazioni aziendali basate su browser web.

Anche se avete già costruito applicazioni utilizzando la piattaforma Qodly, abbiamo altre buone notizie! Con 4D 20R5 potete ora utilizzare l’API REST di un’applicazione Qodly per lavorare senza problemi con i vostri dati.

Continuate a leggere per saperne di più.

HDI_Qodly_App_REST_API

principi fondamentali

il sistema di ruoli e privilegi

Questa funzione si basa su un meccanismo di chiavi API legato al sistema di ruoli e privilegi fornito in 4D 19 R8. Si tratta di un sistema potente e completamente personalizzabile per proteggere i dati da utenti non autorizzati. L’accesso ai dati viene concesso in base a chi vi accede e a quali dati vi accede. Ciò avviene tramite l’impostazione diruoli.

Prima di iniziare, è necessario acquisire alcune conoscenze di base su questa funzione.

gestire le chiavi API nella dashboard di qodly

Nella dashboard di Qodly viene fornito un URL endpoint per l’accesso REST.

È anche possibile generare una chiave API e associarla a un ruolo. Questa chiave API fornisce l’accesso REST ai dati esposti nell’applicazione Qodly e consente di eseguire tutte le azioni consentite per il ruolo associato.

Consultate anche la documentazione di Qodly per conoscere le altre funzionalità relative alle chiavi API (impostare una data di scadenza, autorizzare alcuni IP client, … ecc).

Utilizzare l’API REST di un’applicazione Qodly

È possibile puntare all’API REST della propria applicazione Qodly da:

  • un’applicazione 4D Server (utilizzando il comando Open datastore o la classe HTTPRequest )
  • qualsiasi applicazione di terze parti che supporti le richieste REST

scenario

Consideriamo un’applicazione Qodly che gestisce i prodotti, esponendo una classe di dati del prodotto. Un’applicazione 4D Server(Factory) deve utilizzare l’API REST per leggere o creare i prodotti. L’applicazione Qodly Products è protetta da accessi non autorizzati attraverso il sistema di ruoli e privilegi.

preparare l’accesso all’API REST

Per prima cosa, impostare i ruoli che sono autorizzati a eseguire azioni specifiche su dati definiti utilizzando l’interfaccia Ruoli e privilegi di Qodly Studio.

blank

La lettura della classe di dati del prodotto è consentita al ruolo Employee grazie al livello di privilegio‘semplice‘ che possiede.

blank

blank

Per consentire a un’applicazione client di utilizzare l’API REST dell’applicazione Qodly Products, abbiamo generato sulla dashboard Qodly Products una chiave API associata al ruolo Employee:

blank

utilizzare l’API REST dell’app Qodly Products in un’applicazione 4D Server con il comando open datastore

Nell’applicazione client 4D Server(Factory), è necessario visualizzare l’elenco dei prodotti.

Ecco il codice 4D:

Form.products:=ds.getProducts("Employee")

Ed ecco la classe DataStore:

Class extends DataStoreImplementation

exposed Function getProductsDatastore($apiKey : Text; $id : Text) : 4D.DataStoreImplementation
	
        //End point URL given on the Qodly dashboard 
	var $connect : Object:={hostname: "https://xxx-yyyyyyyy-zzzz-xxxx-yyyy-zzzzzzzzzzzz.xx-yyy.acme.com"; tls: True}
	var $theRemoteDS : 4D.DataStoreImplementation
	
	$connect["api-key"]:=$apiKey
	
	$theRemoteDS:=Open datastore($connect; $id)
	return $theRemoteDS
	
exposed Function getProducts($role : Text) : 4D.EntitySelection
	
	var $apiKey : Text
	var $theRemoteDS : 4D.DataStoreImplementation
	
	$apiKey:="82c0abfe-0628-4446-b890-9add5509335c"
	
	$theRemoteDS:=This.getProductsDatastore($apiKey; $role)
	
	return $theRemoteDS.product.all()

Nella funzione getProducts(), utilizziamo la chiave API corrispondente al ruolo Employee.
Grazie alla funzione getProductsDatastore(), otteniamo l’oggetto datastore corrispondente all’applicazione Products Qodly. Su questa istanza di Products viene aperta una sessione. Essa contiene i privilegi del ruolo Employee.

In questo modo, con questo oggetto datastore, possiamo eseguire tutte le azioni consentite per il ruolo Employee.

Nota:
– la chiave API deve essere indicata una sola volta (come proprietà “api-key” nell’oggetto connect) quando si chiama il comando Open datastore
– l’URL dell’endpoint indicato nella dashboard Qodly dell’istanza Products viene utilizzato come hostname.
Per una rapida comprensione, abbiamo utilizzato la chiave API come valore codificato nel codice. Per motivi di sicurezza, dovrebbe trovarsi in un file protetto dall’esterno (non sincronizzato su GitHub, per esempio).

Ecco il risultato dell’applicazione 4D Server:

blank

utilizzare l’API di riposo dell’applicazione qodly prodotti Da qualsiasi applicazione che utilizza richieste REST

L’esempio seguente mostra come utilizzare Postman per eseguire richieste REST mirate all’API REST di un’applicazione Qodly. L’HDI allegato mostra anche come eseguire tali richieste utilizzando la classe HTTPRequest, JavaScript o altre tecnologie.

Si noti che la chiave API deve essere passata nell’intestazione “api-key” per ogni richiesta REST.

blank

Gli esempi sopra riportati presentano alcuni dati in lettura, ma è anche possibile creare, aggiornare o cancellare dati utilizzando l’API REST.

Per saperne di più

Guardate il video allegato per un esempio completo, dalla creazione di una demo sandbox su Qodly all’utilizzo dell’API REST.

Visitate il sito web di Qodly per saperne di più e rimanere aggiornati sulle nuove funzionalità!

Avatar
- Product Owner - Marie-Sophie Landrieu-Yvert è entrata a far parte del team 4D Product come Product Owner nel 2017. In qualità di Product Owner, è incaricata di scrivere le storie degli utenti e di tradurle in specifiche funzionali. Il suo ruolo è anche quello di assicurarsi che l'implementazione della funzionalità fornita soddisfi le esigenze del cliente.Marie-Sophie si è laureata presso la scuola di ingegneria ESIGELEC e ha iniziato la sua carriera come ingegnere presso IBM nel 1995. Ha partecipato a vari progetti (di manutenzione o di costruzione) e ha lavorato come sviluppatrice Cobol. In seguito ha lavorato come progettista UML e sviluppatore Java. Ultimamente i suoi ruoli principali erano l'analisi e la scrittura dei requisiti funzionali, il coordinamento dei team di business e di sviluppo.