slapshot:
Ciao a tutti, mi rivolgo a voi per avere qualche consiglio. Sto rovistando internet in lungo e in largo, le soluzioni sono molteplici ma se riesco ad avere un indirizzamento da chi è più esperto, probabilmente, risparmio del tempo.
Quello che vorrei fare è scrivere un front-end per un server rest api di serrature automatiche. Espone diverse API, ovviamente. Con curl da terminale linux riesco ad ottenere quanto mi occorre, token ecc.. Ma mi piacerebbe usare fpc per poter effettuare interrogazioni ed impartire comandi al server rest api. Trovo difficile capire come imbastire il tutto, quali classi usare, se usare o meno un framework tipo Mormot (il progetto potrebbe diventare ben più complesso della semplice interrogazione ma volerei basso all'inizio). Esempio:
da shell riesco ad ottenere un response facilmente. Stavo provando a capire come usare fpHTTPClient ma non riesco a capire come impostare header e poi il resto dei parametri. Se mi date un suggerimento, link ecc.. provo a codificare qualcosa.
Grazie
DragoRosso:
Questo progetto può aiutarti. E' fatto per ChatGPT, ma puoi prendere spunto per altri ... il concetto non è dissimile.
Ciao
nomorelogic:
se devi interrogare un server rest, ti consiglio prima di tutto di guardare quello che offre lazarus/fpc personalmente uso (intensamente, pesantemente e da parecchio tempo) il client http contenuto nella unit fphttpclient che trovi nei sorgenti del Free Pascal
// simple get try FResponse := Client.SimpleGet(sURL); result:=True; HttpCode:=Client.ResponseStatusCode; except on e: exception do begin result:=False; FResponse:=''; FError:=e.Message; end; end;
finally FreeAndNil(Client); end;
end;
--- Termina codice ---
Edit: m'era sfuggito leggendo il tuo post che stavi proprio guardando fpHTTPClient meglio così, credo che sia il giusto punto di partenza :)
DragoRosso:
Anche l'esempio che ho postato è (a parte il condimento grafico) con fhttpclient.
nomorelogic:
comunque gli header si impostano come vedi nel codice che ho postato
i vari --- Codice: --- --data-urlencode --- Termina codice --- vanno a far parte dell'URL nella sezione query, dopo il '?' (puoi fare riferimento a Format..)
--data (o -d) va a finire nel body (devi usare un TStream ma posso fornirti del codice di esempio)
non ho capito il parametro --- Codice: --- --data-urapisciener.com/v3/lock/list' --- Termina codice ---