[PHP] Web App REST chiamata GET

Alberto Simonazzi

Nuovo Utente
31 Ago 2018
6
0
1
Buongiorno a Tutti!!

dovrei fare una chiamata in PHP ad una WebApp di tipo REST ma la documentazione fornita con l'API è molto limitata, quindi non so davvero come chiamare il servizio.

Ho già fatto chiamate a WebApp di tipo Soap e non ho mai avuto problemi, ma col servizio di Tipo Restfull non ho proprio esperienza.

Ho provati vari codici in giro in Curl ma senza successo. Se potete darmi una Dritta o un sito di riferimento per comunicare con una App di tipo Restfull mi fareste un grosso favore.

Qui sotto vi metto i dettagli Fornitemi della App oltre ad allegare il Pdf nella discussione:

Grazie a tutti in anticipo

Alberto

Dati Personali per Accedere all'App:

Host: si-totem40.servizitalia.spa:8080
Username: newfleurws,
Password: nfws123
QueryString: ?sito=FL002&destinatario=E000025


WEB SERVICE GESTIONE CONSEGNE

1.TECNOLOGIA

Il web service è un servizio rest, che utilizza la Basic Authentication per l’autenticazione.
Il servizio risponde ad una chiamata http GET.

Esempio di chiamata al Web Service presa dall’ app. PostMan

GET /newFleurWs/resources/consegne?sito=CA001&destinatario=013864 HTTP/1.1
Host: localhost:8093
Authorization: Basic YmlhbmNhOjFub25sYXNvISEh
Cache-Control: no-cache
Postman-Token: 2fbd993e-dd60-50ab-a05f-c3ecf10cb63b

La chiamata è composta dell’header del messaggio e non ha un corpo essendo una GET.
Il servizio restituisce un stringa in formato JSON

2.MODALITÀ ACCESSO AL WEB SERVICE

Il web service è accessibile attraverso l’indirizzo: {NOME_HOST}/newFleurWs/resources/consegne

A questo indirizzo andranno aggiunti due parametri da legare all’URL per mezzo di una query string che rappresenta i parametri di input per il servizio: il primo è il codice del sito produttivo di cui ci interessa sapere la lavorazione, il secondo il codice del destinatario di cui vogliamo sapere le consegne:

Esempio di query-string
?sito=CA001&destinatario=013864
Nome parametri
Valore parametri

Inoltre si dovrà effettuare un’autenticazione col metodo basic access authentication, inserendo l’ header HTTP Authorization costituito da:

1. Username e password uniti nella stringa "username:password"
2. Il risultato codificato con base64
3. Il metodo di autorizzazione (basic) e uno spazio sono inseriti all'inizio della stringa codificata.


Esempio di header HTTP Authorization
Authorization: Basic YmlhbmNhOjFub25sYXNvISEh

3.RISPOSTA DEL WEB SERVICE

La risposta del servizio è costituita da un JSON costituito da due sotto elementi:
Nel caso di errore dalla proprietà Status e dalla proprietà Message che descrive l’errore, in
caso di esito positivo della chiamata avrà sempre il valore Status e come seconda proprietà Result un
array che contiene i records da ritornare.
Status è una proprietà di controllo per capire se la chiamata è andata a buon fine o no, esso
assumerà valore 0 in caso di fallimento, 1 in caso di riuscita.

Esempio di JSON restituito da un esito positivo:

{"Status":1,"Result":[{"codiceDestinatario":"013864","descrizioneDestinatario":"PIANO
1","codiceArticolo":"000946B","descrizioneArticolo":"COPRIMACCHIA 100X100 ROSAUHF","
dotazioneAggiornata":-
151,"qtaPacco":20,"riportoPartite":161,"partitaDaProdurre":0,"creditoDaEvadere":161,"daProdurre"
:161,"prodotta":0,"stato":"Attiva"},{"codiceDestinatario":"013864","descrizioneDestinatario":"PIAN
O 1","codiceArticolo":"014543B","descrizioneArticolo":"CASACCA UNISEX S.O. COL. AVIOUHF","
dotazioneAggiornata":-
168,"qtaPacco":5,"riportoPartite":218,"partitaDaProdurre":0,"creditoDaEvadere":218,"daProdurre":
218,"prodotta":0,"stato":"Attiva"},{"codiceDestinatario":"013864","descrizioneDestinatario":"PIANO
1","codiceArticolo":"014544B","descrizioneArticolo":"PANTALONE UNISEX S.O. COL. AVIOUHF","
dotazioneAggiornata":-
226,"qtaPacco":5,"riportoPartite":262,"partitaDaProdurre":0,"creditoDaEvadere":262,"daProdurre":
262,"prodotta":0,"stato":"Attiva"},{"codiceDestinatario":"013864","descrizioneDestinatario":"PIANO
1","codiceArticolo":"018943B","descrizioneArticolo":"LENZUOLO CAN.MISTO
C/STAMP.CM160X290-UHF","dotazioneAggiornata":-
85,"qtaPacco":10,"riportoPartite":0,"partitaDaProdurre":0,"creditoDaEvadere":0,"daProdurre":0,"pr
odotta":0,"stato":"Attiva"}]}

Esempio di JSON restituito da un esito negativo:

{"Status":0,"Message":"Site not found"}
 
Ultima modifica:
se devi fare una chiamata get puoi utilizzare una cosa del genere

Codice:
$r = new HttpRequest('http://example.com/GET /newFleurWs/resources/consegne', HttpRequest::METH_GET);
$r->setOptions('?sito=FL002&destinatario=E000025');
try {
    $r->send();
    if ($r->getResponseCode() == 200) {
        $json_risposta = $r->getResponseBody();
    }
} catch (HttpException $ex) {
    echo $ex;
}
 
Grazie mille Rikk73 per la risposta!

Ho provato il Codice su 2 Server uno su Aruba e uno su Altervista ma mi da sempre lo stesso errore:

Class 'HttpRequest' not found in ...
 

Discussioni simili