52 lines
1.5 KiB
Python
52 lines
1.5 KiB
Python
"""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"},
|
|
)
|