It is currently 8 June 2025, 8:36 Advanced search

OpenAPI in Foundation

Domande e risposte su come utilizzare Instant Developer Foundation al meglio

OpenAPI in Foundation

Postby Gionanni » 18 October 2024, 10:13

Ciao, ci troviamo a dover scambiare informazioni con sistemi esterni (tra cui GPT) che sempre più richiedono un interfaccia API al passo dei tempi.
Quando presentiamo l'interfaccia WEBAPI di foundation spesso ci nicchiano un po'.
Anche se non mi piace stavamo pensando di realizzare un'interfaccia intermedia sviluppata con framework tipo https://fastapi.tiangolo.com/ o django che venisse a consumare le WEBAPI foundation.
Avete anche voi la stessa esigenza? come affrontate la questione?
Gionanni
 
Posts: 196
Joined: 20 January 2011, 9:21

Re: OpenAPI in Foundation

Postby d.pierangeli » 18 October 2024, 15:31

Interessante, OpenAPI non è uno standard che definisce il formato delle API ma è solo uno standard di descrizione di API generiche.

Quindi il problema secondo te è nella FORMA delle API scelte da noi e quindi nelle specifiche oppure che non esiste un metodo per mostrarle e consumarle in maniera facile?
User avatar
d.pierangeli
Pro Gamma
Pro Gamma
 
Posts: 8129
Joined: 30 September 2010, 15:35

Re: OpenAPI in Foundation

Postby Gionanni » 18 October 2024, 16:06

Le differenze rispetto agli standard che abbiamo sempre incontrato sono:
- la possibilità di evitare l'utilizzo dell'header: X-HTTP-Method-Override per le funzioni "custom": ci piacerebbe utilizzare un endpoint del tipo https:\\api.miodominio.it\apiV1\entita\proceduracustom che prenda sul body un payload JSON/XML "liscio" senza doverlo includere in un oggetto nominato come il parametro della funzione definita in INDE
- le risposte in GET se restitiuiscono un solo valore ritornano un oggetto se restituiscono un insieme ritornano invece un array, questa "ambiguità" porta a dover fare del lavoro in più lato client per distinguere i due casi
- le risposte in GET vengono sempre racchiuse all'interno di un oggetto nominato come la classe che poi al suo interno contiene i dati. Anche questo è un comportamento diverso rispetto a quello che si incontra solitamente e porta ad avere risposte meno "pulite
- le risposte in GET includono sempre gli attributi "do_xxxx" che ci piacerebbe evitare di mandare in giro sempre per una pulizia delle risposte

Alcuni di questi "inconventi" li abbiamo superati introducendo un documentHelper che intercetta le chiamate ma non è il massimo...
Gionanni
 
Posts: 196
Joined: 20 January 2011, 9:21

Re: OpenAPI in Foundation

Postby f.dellamalva » 18 October 2024, 19:35

Per l'ultimo punto, non so se è esattamente il tuo caso e può esserti utile.
Nell'evento OnSaveXMLProp della classe DO utilizzata per le risposte, azzero il TagEsterno quanto il nome della proprietà si riferisce a quelle proprietà generate da INDE in questo modo le proprietà non vengono inserite nel Json o XML della risposta.
Attachments
Screenshot 2024-10-18 .png
Screenshot 2024-10-18 .png (193.96 KiB) Viewed 655 times
User avatar
f.dellamalva
 
Posts: 6
Joined: 16 December 2023, 19:02
Location: Montecatini Terme

Re: OpenAPI in Foundation

Postby r.bianco » 21 October 2024, 6:47

Gionanni wrote:Le differenze rispetto agli standard che abbiamo sempre incontrato sono:
- la possibilità di evitare l'utilizzo dell'header: X-HTTP-Method-Override per le funzioni "custom": ci piacerebbe utilizzare un endpoint del tipo https:\\api.miodominio.it\apiV1\entita\proceduracustom che prenda sul body un payload JSON/XML "liscio" senza doverlo includere in un oggetto nominato come il parametro della funzione definita in INDE
- le risposte in GET se restitiuiscono un solo valore ritornano un oggetto se restituiscono un insieme ritornano invece un array, questa "ambiguità" porta a dover fare del lavoro in più lato client per distinguere i due casi
- le risposte in GET vengono sempre racchiuse all'interno di un oggetto nominato come la classe che poi al suo interno contiene i dati. Anche questo è un comportamento diverso rispetto a quello che si incontra solitamente e porta ad avere risposte meno "pulite
- le risposte in GET includono sempre gli attributi "do_xxxx" che ci piacerebbe evitare di mandare in giro sempre per una pulizia delle risposte

Alcuni di questi "inconventi" li abbiamo superati introducendo un documentHelper che intercetta le chiamate ma non è il massimo...


Concordo. Finché si parla di far comunicare inde con inde è molto comodo avere il rispetto del formato "DO" anche nella risposta WebAPI. Ma quando si parla di InDe verso "altro", lascia tutti gli "altro" un po' spiazzati.
Tempo fa, se non ricordo male, mi son fatto una funzione che "pulisce" il JSON generato da InDe, prima di restituirlo al richiedente.
only work and no play makes jack a dull boy
r.bianco
 
Posts: 4979
Joined: 8 November 2010, 16:46

Re: OpenAPI in Foundation

Postby d.termini » 21 October 2024, 7:08

Concordo pure io. Soprattutto nel primo punto di evitare di dover incapsulare il body in un oggetto nominato come il parametro.
Spesso me ne dimentico e poi errori su errori e non capisco cosa manca, poi vien fuori che o manca l'incapsulamento oppure il parametro è in un case diverso da quello del body (eh sì, è pure case sensitive...)
d.termini
 
Posts: 1656
Joined: 13 November 2017, 8:41

Re: OpenAPI in Foundation

Postby d.pierangeli » 21 October 2024, 8:20

Questo feedback è molto interessante, l'ho portato all'attenzione.

Purtroppo non possiamo modificare molto ora per retrocompatibilità, forse si potrebbe usare l'ennesimo parametro di compilazione.
User avatar
d.pierangeli
Pro Gamma
Pro Gamma
 
Posts: 8129
Joined: 30 September 2010, 15:35

Re: OpenAPI in Foundation

Postby r.bianco » 21 October 2024, 10:10

d.pierangeli wrote:Questo feedback è molto interessante, l'ho portato all'attenzione.

Purtroppo non possiamo modificare molto ora per retrocompatibilità, forse si potrebbe usare l'ennesimo parametro di compilazione.


Forse meglio intercettare un parametro nell'header della richiesta, che indica se se si vuole una risposta che rispetta il formato DO oppure no.
E` solo un'idea.
only work and no play makes jack a dull boy
r.bianco
 
Posts: 4979
Joined: 8 November 2010, 16:46

Re: OpenAPI in Foundation

Postby d.termini » 21 October 2024, 10:52

r.bianco wrote:
d.pierangeli wrote:Questo feedback è molto interessante, l'ho portato all'attenzione.

Purtroppo non possiamo modificare molto ora per retrocompatibilità, forse si potrebbe usare l'ennesimo parametro di compilazione.


Forse meglio intercettare un parametro nell'header della richiesta, che indica se se si vuole una risposta che rispetta il formato DO oppure no.
E` solo un'idea.

Io lo stavo pensando come proprietà della procedura, così è il programmatore che decide e non il fruitore dell'API, nasce default "InDe" e lo si può mettere "custom" o "resto del mondo" :P Così si possono mantenere entrambe le versioni.
Per le chiamate standard (quelle DO di InDe) invece penso che la proposta di Riccardo vada bene, però nascendo di default "InDe" altrimenti si rompe la retrocompatibilità, deve essere il fruitore a decidere come la vuole.
d.termini
 
Posts: 1656
Joined: 13 November 2017, 8:41


Return to Tips & Tricks - Foundation

Who is online

Users browsing this forum: No registered users and 72 guests