OBM 1 API Notebook

API quick reference

This notebook focuses on direct API calls. Most-used entry points:

  1. API.autosuggest(...)

  2. API.discover(...)

  3. HTTPSession()

  4. Response.geojson()

  5. Response.req (request metadata)

For the complete reference, see API Reference.

API methods used in this notebook

class here_search_demo.api.API(credentials=None, cache=None, raise_for_status=True, options=None, log_fn=None, on_request_sent=None, testing_header=False)

https://docs.here.com/geocoding-and-search/reference

async autosuggest(session, q, latitude, longitude, polyline=None, width=None, all_along=None, x_headers=None, **kwargs)

Calls HERE Search Autosuggest endpoint

Parameters:
  • session (ClientSession) – instance of ClientSession

  • q (str) – query text

  • latitude (float) – search center latitude

  • longitude (float) – search center longitude

  • x_headers (dict | None) – Optional X-* headers (X-Request-Id, X-AS-Session-ID, …)

Param:

kwargs: additional request URL parameters

Return type:

Response

Returns:

a Response object

async discover(session, q, latitude, longitude, polyline=None, width=None, all_along=None, x_headers=None, **kwargs)

Calls HERE Search Discover endpoint

Parameters:
  • session (ClientSession) – instance of HTTPSession

  • q (str) – query text

  • latitude (float) – search center latitude

  • longitude (float) – search center longitude

  • x_headers (dict | None) – Optional X-* headers (X-Request-Id, X-AS-Session-ID, …)

Param:

kwargs: additional request URL parameters

Return type:

Response

Returns:

a Response object

class here_search_demo.lite.HTTPSession(*args, warmup=None, **kwargs)

Browser runtime HTTP session adapter.

Uses pyfetch in Pyodide/JupyterLite and mimics the subset of the aiohttp.ClientSession interface used by this project (get, post, and request).

Reference: https://pyodide.org/en/stable/usage/api/python-api/http.html

Examples (illustrative):

Basic GET:

async def demo_get(url):
    session = await HTTPSession()
    get_response = await session.get(url)
    get_response.raise_for_status()
    return await get_response.json()

Context-managed GET:

async def demo_ctx_get(url):
    async with HTTPSession() as session:
        async with session.get(url) as get_response:
            get_response.raise_for_status()
            return await get_response.json()

Reading bytes (e.g. image):

async def demo_read(image_url):
    async with HTTPSession() as session:
        async with session.get(image_url) as get_response:
            return await get_response.read()

Basic POST:

async def demo_post(url):
    async with HTTPSession() as session:
        async with session.post(url) as post_response:
            post_response.raise_for_status()
            return await post_response.text()

here_search_demo.http.HTTPSession resolves to this implementation in browser runtimes (JupyterLite / Pyodide).

class here_search_demo.entity.response.Response(req, data, x_headers=<factory>, raw=None)

Immutable HERE Search response wrapper.

Variables:
  • req – originating request

  • data – parsed JSON payload view

  • x_headers – captured response X-* headers

  • raw – optional raw response body

geojson()

Return a GeoJSON FeatureCollection for items that include position.

Return type:

dict

Returns:

GeoJSON mapping containing only items with coordinates

class here_search_demo.entity.request.Request(endpoint=None, base_url=None, params=None, data=None, x_headers=None, previous_response=None)

Normalized HERE Search request payload.

Variables:
  • endpoint – target HERE Search endpoint enum

  • base_url – endpoint base URL

  • params – query-string parameters

  • data – optional request body (used for POST route payloads)

  • x_headers – optional request-scoped X-* headers

  • previous_response – optional previous response used for follow-up flows

property full

Return full request URL including encoded query string.

Returns:

full request URL

property key: str

Return a deterministic cache key for this request.

Returns:

cache key string derived from base URL and params