Ziel
Response eines HTTP Requests in seine Bestandteile zerlegen und beliebige Attribute Outputobjekten zuordnen.
Um das ganze verständlicher zu machen, ein Beispiel für eine mögliche Response zu dem Request:
api.openweathermap.org/data/2.5/weather?lat=35&lon=139
Code: Alles auswählen
{"coord": { "lon": 139,"lat": 35},
"weather": [
{
"id": 800,
"main": "Clear",
"description": "clear sky",
"icon": "01n"
}
],
"base": "stations",
"main": {
"temp": 281.52,
"feels_like": 278.99,
"temp_min": 280.15,
"temp_max": 283.71,
"pressure": 1016,
"humidity": 93
},
"wind": {
"speed": 0.47,
"deg": 107.538
},
"clouds": {
"all": 2
},
"dt": 1560350192,
"sys": {
"type": 3,
"id": 2019346,
"message": 0.0065,
"country": "JP",
"sunrise": 1560281377,
"sunset": 1560333478
},
"timezone": 32400,
"id": 1851632,
"name": "Shuzenji",
"cod": 200
}
Input
- "Response" - eines HTTP Requests
- Definition der benötigten Variablen, um Attribute der Response zu "filtern", zB Temperatur
- Jeder Variabel aus den Leveln ist nun der Pfad aus dem Eingangsobjekt zuzuweisen, zB.
Level: "Temperatur"; Path:InputObj1.main.temp = 281.52 (ggf mit Live-Preview des Attribut-Wertes) - Das Response-Objekt kann natürlich auch Arrays enthalten, so dass die Pfad Zuordnung auch zB Path:InputObj1.preview.list[3].temp sein könnte,
- Toll wäre, wenn man das Attribut aus dem InputObjekt anklicken könnte und der Pfad dann angezeigt/ kopiert wird, um ihn einfacher zuzuordnen.
- Die bestehende Mapping - Funktionen optional anbieten
- Jede Level Variabel ist nun als OutputObjekt einem TWS-Objekt inkl. Datentyp zuzuordnen
Damit der Parser nicht zu komplex wird, schlage ich vor, dass wir uns (zunächst) auf Json beschränken. Wie seht ihr das?
Welche weiteren Einschränkungen machen Sinn, damit das ganze auch als Anwender einfach zu bedienen ist?