Der Funktionsumfang und auch die Bedienung sind stark an Autodesk Fusion angelehnt.
Es kann Standalone auf Windows, Linux und Mac sowie direkt im Browser verwendet werden.
Dann habe ich mir mal ein Tutorial von Rust angeschaut, in dem eine Abfrage an openweathermap.org durchgeführt wird und es die Temperatur in einer einzugebenden Stadt anzeigt.
Das gleiche habe ich dann auch mal mit Lazarus umgesetzt.
Die verwendete Unit env.pas exportiert lediglich die Konstante API_KEY, welche man kostenlos bei openweathermap.org bekommt.
Beim Anblick des Rust Codes drehen sich mir die Fußnägel hoch.
Code: Alles auswählen
mod env;
use reqwest::blocking::{Response, get};
use serde_json::{Value, from_str};
use std::io;
fn main() {
let api_key=env::API_KEY;
let mut city:String = String::new();
println!("Bitte gib eine Stadt ein:");
io::stdin()
.read_line(&mut city)
.expect("Fehler beim Lesen der Eingabe");
let url = format!("http://api.openweathermap.org/data/2.5/weather?q={}&appid={}", city, api_key);
let response:Response = get(url).unwrap();
let response_text: String = response.text().unwrap();
let json: serde_json::Value = serde_json::from_str(&response_text).expect("Fehler bei Json parsen");
let temp_celsius: f64 = json["main"]["temp"].as_f64().unwrap()-273.15;
println!("Hier ist das Wetter von {}", city);
println!("Aktuelle Temperatur: {}° Celsius", temp_celsius.round());
}
Code: Alles auswählen
program fpc_hello;
uses fphttpclient,
fpjson,
jsonparser,
env,
sysutils;
var api_key : string = env.API_KEY;
url : string = 'http://api.openweathermap.org/data/2.5/weather?q=%s&appid=%s';
city : string;
http : TFPHTTPClient;
json : TJSonData;
jp : TJSonParser;
Result : string;
temp : Double;
begin
Write('Gib bitte eine Stadt ein:');
ReadLn(city);
http := TFPHTTPClient.Create(nil);
Result := http.Get(Format(url, [city, api_key]));
jp := TJSonParser.Create(Result);
json := jp.Parse;
temp := json.FindPath('main').FindPath('temp').asFloat - 273.15;
writeln(Format('Hier ist das Wetter in %s', [city]));
writeln(Format('Die Temperatur beträgt %g° Celsius', [temp]));
ReadLn;
http.free;
jp.Free;
end.