It is currently 21 April 2025, 21:27 Advanced search

X-HTTP-Override-Method in Inde

Domande e risposte su come utilizzare Instant Developer Foundation al meglio

X-HTTP-Override-Method in Inde

Postby f.faleschini » 10 December 2024, 17:29

Ciao,

ho fatto (anni fa) una webapi in inde che va chiamata con X-HTTP-Override-Method, siccome uso un metodo WebApi (mioMetodo) di una classe WebApi che si trova in un componente, quindi l'url è

http://127.0.0.1:1308/MiaApp/MioComponente/MiaClasse?PARAMETRI
e va chiamata con X-HTTP-Override-Method passandogli il nome del metodo (mioMetodo).

La API la chiamavo da Delphi e ha sempre funzionato.

oggi ho avuto bisogno di chiamarla da Inde e non ci riuscivo.

Seguendo la documentazione ho provato a fare
Code: Select all
IDMap headers = new()
headers.setValue("ID_HEADERS", "X-HTTP-Override-Method: mioMetodo")
headers.setValue("ID_TYPE", "GET")
string response = getHTTP(webApiUrl, headers, ...)


ma non funziona, per tentativi (procedendo puramente a caso) ho per fortuna imbroccato la soluzione che è:
Code: Select all
IDMap headers = new()
headers.setValue("ID_TYPE", "mioMetodo")
string response = getHTTP(webApiUrl, headers, ...)


quindi per fare l'override, cioè non usare GET ma mioMetodo, non si deve usare l'header X-HTTP-Override-Method ma mettere in ID_TYPE il nome del metodo, mentre la documentazione di getHttp fa intendere che ID_TYPE si aspetta solo GET o POST.

Siccome funziona deduco che sia il modo corretto di fare, però la documentazione non aiuta, io ci sono arrivato perché in fondo anche su postman si fa così: si scrive mioMetodo invece di GET e funziona.

Da Delphi invece facevo proprio uso di X-HTTP-Override-Method negli headers, chiaramente l'implementazione è diversa lì.

È giusto quindi passare i nome del metodo in ID_TYPE per chiamare una API che si aspetta un override method?

Grazie!
f.faleschini
 
Posts: 1065
Joined: 12 April 2017, 9:09

Re: X-HTTP-Override-Method in Inde

Postby eurekapv » 10 December 2024, 19:05

Ciao Francesco,
se guardi la guida Web Api è spiegato

'Nelle chiamate a metodi custom il nome del metodo da chiamare deve essere specificato nel metodo HTTP
della richiesta. È possibile tuttavia che non sia ammesso effettuare la chiamata con un metodo HTTP non
standard per diversi motivi:
• il linguaggio usato lato client per effettuare la chiamata non lo permette; • il firewall del client o
del server non lo permette;
• il server web non lo permette.
Qualora si presenti uno di questi casi, occorre usare POST come metodo HTTP e specificare il nome del
metodo che si intende chiamare in un header della richiesta con nome X-HTTP-Method-Override.'

Quindi come dire ... potresti anche metterlo nell'IDTYPE ma meglio di NO !!!
Io ho usato un sacco di volte i metodi Custom effettuando sempre la chiamata con IDTYPE = POST

Questo è valido anche usando PostMan o altri linguaggi che chiamano Inde.
Alchimisti Lab by Cavallini Pietro
https://www.alchimistilab.it

Image
User avatar
eurekapv
 
Posts: 2450
Joined: 2 November 2010, 22:16
Location: Vigevano

Re: X-HTTP-Override-Method in Inde

Postby f.faleschini » 11 December 2024, 15:24

eurekapv wrote:Ciao Francesco,
se guardi la guida Web Api è spiegato

'Nelle chiamate a metodi custom il nome del metodo da chiamare deve essere specificato nel metodo HTTP
della richiesta. È possibile tuttavia che non sia ammesso effettuare la chiamata con un metodo HTTP non
standard per diversi motivi:
• il linguaggio usato lato client per effettuare la chiamata non lo permette; • il firewall del client o
del server non lo permette;
• il server web non lo permette.
Qualora si presenti uno di questi casi, occorre usare POST come metodo HTTP e specificare il nome del
metodo che si intende chiamare in un header della richiesta con nome X-HTTP-Method-Override.'

Quindi come dire ... potresti anche metterlo nell'IDTYPE ma meglio di NO !!!
Io ho usato un sacco di volte i metodi Custom effettuando sempre la chiamata con IDTYPE = POST

Questo è valido anche usando PostMan o altri linguaggi che chiamano Inde.

Ciao Pietro,

grazie per la risposta.

Ho provato a fare una POST con Inde con X-HTTP-Override-Method ma mi dice
Request with method POST must have a body
ho provato a mettere un body (da postman) proforma tipo
{"data":"dummy"}

ma non cambia.
A me resta che forzare il tipo di chiamata è l'unica soluzione.

Ciao!
f.faleschini
 
Posts: 1065
Joined: 12 April 2017, 9:09

Re: X-HTTP-Override-Method in Inde

Postby eurekapv » 11 December 2024, 15:31

Hai provato a mettere un oggetto vuoto come Body e cioè {}
Perchè nel caso la tua funzione custom avesse parametri in ingresso dovresti creare un oggetto con i nomi dei parametri esempio
["param1": 10, "param2": 20}
Visto che non ne hai prova a mettere un oggetto vuoto
Alchimisti Lab by Cavallini Pietro
https://www.alchimistilab.it

Image
User avatar
eurekapv
 
Posts: 2450
Joined: 2 November 2010, 22:16
Location: Vigevano

Re: X-HTTP-Override-Method in Inde

Postby f.faleschini » 12 December 2024, 8:04

eurekapv wrote:Hai provato a mettere un oggetto vuoto come Body e cioè {}
Perchè nel caso la tua funzione custom avesse parametri in ingresso dovresti creare un oggetto con i nomi dei parametri esempio
["param1": 10, "param2": 20}
Visto che non ne hai prova a mettere un oggetto vuoto

Ciao, ho provato a mettere un json dummy ma in ogni caso non riesco a farlo andare.

Comunque cambiando il metodo con ID_TYPE mi funziona e siccome devo chiamare proprio quella API e quel modo funziona anche se è subottimale almeno mi va.

Se dovrò approfondire in futuro studierò perché non va.

Grazie.

Ciao.
f.faleschini
 
Posts: 1065
Joined: 12 April 2017, 9:09

Re: X-HTTP-Override-Method in Inde

Postby d.termini » 12 December 2024, 8:11

Io ho trovato l'unico modo di farlo funzionare per le mie esigenze e da lì faccio praticamente "copia incolla"
Definisco un parametro nella funzione e nel body della chiamata metto un JSON {"parametro": { ...contenuto... } }
Poi nella chiamata uso POST e X-HTTP-Method-Override <- va scritto così non X-HTTP-Override-Method ;)
d.termini
 
Posts: 1638
Joined: 13 November 2017, 8:41

Re: X-HTTP-Override-Method in Inde

Postby f.faleschini » 13 December 2024, 13:44

d.termini wrote:Io ho trovato l'unico modo di farlo funzionare per le mie esigenze e da lì faccio praticamente "copia incolla"
Definisco un parametro nella funzione e nel body della chiamata metto un JSON {"parametro": { ...contenuto... } }
Poi nella chiamata uso POST e X-HTTP-Method-Override <- va scritto così non X-HTTP-Override-Method ;)

Ah grazie!

Beh magari funziona anche HTTP-X-Override-Method...
f.faleschini
 
Posts: 1065
Joined: 12 April 2017, 9:09

Re: X-HTTP-Override-Method in Inde

Postby carlop » 16 December 2024, 7:09

Ciao a tutti,
con le WebAPI in Inde ho sviluppato parecchio spesso con il metodi custom e confermo che come Key/value nell'header uso "X-HTTP-Method-Override" e non "X-HTTP-Override-Method" e funziona correttamente.
User avatar
carlop
 
Posts: 34
Joined: 2 May 2011, 8:12
Location: Genova

Re: X-HTTP-Override-Method in Inde

Postby f.faleschini » 17 December 2024, 12:32

Ok, ma allora perché non segnaliamo un malfunzionamento? Dovrebbe funzionare con X-HTTP-Override-Method, poi il fatto che per errore funzioni anche con X-HTTP-Method-Override è una cosa strana che ovviamente sarà da lasciare per non rompere funzionamenti esistenti.

Io quando trovo un problema segnalo sempre, chiaro che si va avanti anche a forza di workaround, ma tutti gli altri così la pagano sulla loro pelle.

Io quindi segnalo ora questo problema.

Ciao!
f.faleschini
 
Posts: 1065
Joined: 12 April 2017, 9:09

Re: X-HTTP-Override-Method in Inde

Postby d.termini » 17 December 2024, 13:29

Non sono d'accordo, la dicitura corretta è X-HTTP-Method-Override, mica te la puoi inventare
d.termini
 
Posts: 1638
Joined: 13 November 2017, 8:41

Next

Return to Tips & Tricks - Foundation

Who is online

Users browsing this forum: No registered users and 30 guests

cron