Simple REST for app variables and data
Use any Icetop Database URL as a REST endpoint. Append a file extension
like .json or .xml and send requests from your favorite HTTPS client.
Language Connectors
Icetop provides connectors with easy put and get functions:
For terminal and shell environments.
Drop-in module with simple API.
Works in Flutter with `http` dependency.
Generic PUT — Writing Data
Send a PUT request. Two query parameters matter: proj (project name)
and suburl (endpoint path under the project).
curl -X PUT \
-d '{"first": "Chris", "last": "Jack"}' \
"https://icetop.acnodelabs.com/icetop.php?proj=family&suburl=/users/chris/name.json"
On success, the server returns 200 OK and echoes your data:
{"first": "Chris", "last": "Jack"}
To update, repeat the PUT with new data. Previous values remain recorded. You can also PUT data manually using the HTML form.
Generic GET — Reading Data
Read data with a simple GET request:
curl "https://icetop.acnodelabs.com/icetop.php?proj=family&suburl=/users/chris/name.json"
On success, the server returns 200 OK and the latest value:
{"first": "Chris", "last": "Jack"}
GET in Python — Reading Data
Download icetop.py and place it in your project folder, or fetch via curl:
curl -o icetop.py \
"https://icetop.acnodelabs.com/icetop.php?proj=scripts&suburl=/scripts/icetop/icetop.py"
Read data with a simple function call:
import icetop
icetop.proj = "MyProject"
# Only override if required; default is icetop.acnodelabs.com
icetop.server = "icetopserver.com"
print(icetop.get("/users/jack/name.json"))
Response:
{"first": "Chris", "last": "Jack"}
PUT in Python — Writing Data
import icetop
icetop.proj = "MyProject"
icetop.put("/users/jack/name.json", '{"first": "Chris", "last": "Jack"}')
res = icetop.get("/users/jack/name.json")
print(res)
Response:
{"first": "Chris", "last": "Jack"}
To update data, repeat the PUT request with new values. Previous records remain stored.
Get in Dart & Flutter — Reading Data
Download icetop.dart and place it in your project folder, or fetch via curl:
curl -o icetop.dart \
"https://icetop.acnodelabs.com/icetop.php?proj=scripts&suburl=/scripts/icetop/icetop.dart"
Read data:
import 'icetop.dart';
IceTop.proj = 'MyProject';
// Only override if required; default is icetop.acnodelabs.com
IceTop.server = 'icetopserver.com';
final resp = IceTop().Get('/users/jack/name.json');
Response:
{"first": "Chris", "last": "Jack"}
Put in Dart & Flutter — Writing Data
import 'icetop.dart';
IceTop.proj = 'MyProject';
// Only override if required; default is icetop.acnodelabs.com
IceTop.server = 'icetopserver.com';
final resp = IceTop().Put('/users/jack/name.json', '{"first": "Chris", "last": "Jack"}');
Response:
{"first": "Chris", "last": "Jack"}
Flutter: add dependency http: ^0.13.5 in your pubspec.yaml.