Files

52 lines
1.5 KiB
Python
Raw Permalink Normal View History

"""Explore URA ArcGIS REST API endpoints discovered by auto-reverse."""
import json
import requests
BASE = "https://maps.ura.gov.sg/ArcGis/rest/services/lsag"
def show(label: str, url: str, params: dict | None = None):
print(f"\n{'='*60}")
print(f" {label}")
print(f" {url}")
print(f"{'='*60}")
r = requests.get(url, params=params or {}, timeout=15)
print(f"Status: {r.status_code}")
try:
data = r.json()
print(json.dumps(data, indent=2)[:3000])
except Exception:
print(r.text[:1000])
# 1. URA Sale Sites — layer metadata
show("URA Sale Sites — Layer Info", f"{BASE}/ura_sale_sites/MapServer/0")
# 2. URA Sale Sites — query all features
show(
"URA Sale Sites — All Features",
f"{BASE}/ura_sale_sites/MapServer/0/query",
{"where": "1=1", "outFields": "*", "f": "json", "resultRecordCount": "5"},
)
# 3. HDB Sale Sites — layer metadata
show("HDB Sale Sites — Layer Info", f"{BASE}/hdb_sale_sites2/MapServer/0")
# 4. HDB Sale Sites — query
show(
"HDB Sale Sites — All Features",
f"{BASE}/hdb_sale_sites2/MapServer/0/query",
{"where": "1=1", "outFields": "*", "f": "json", "resultRecordCount": "5"},
)
# 5. JTC Sale Sites — layer metadata
show("JTC Sale Sites — Layer Info", f"{BASE}/jtc_sale_sites/MapServer/0")
# 6. JTC Sale Sites — query
show(
"JTC Sale Sites — All Features",
f"{BASE}/jtc_sale_sites/MapServer/0/query",
{"where": "1=1", "outFields": "*", "f": "json", "resultRecordCount": "5"},
)