{"id":18542214,"url":"https://github.com/heremaps/here-azure-serverless","last_synced_at":"2025-04-09T18:31:42.035Z","repository":{"id":55226064,"uuid":"181858777","full_name":"heremaps/here-azure-serverless","owner":"heremaps","description":"Azure Functions for HERE Location Services","archived":false,"fork":false,"pushed_at":"2022-12-12T20:25:02.000Z","size":41758,"stargazers_count":6,"open_issues_count":29,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-24T10:21:20.418Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://developer.here.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/heremaps.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-04-17T09:23:01.000Z","updated_at":"2024-05-16T09:28:18.000Z","dependencies_parsed_at":"2023-01-28T00:46:30.885Z","dependency_job_id":null,"html_url":"https://github.com/heremaps/here-azure-serverless","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heremaps%2Fhere-azure-serverless","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heremaps%2Fhere-azure-serverless/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heremaps%2Fhere-azure-serverless/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heremaps%2Fhere-azure-serverless/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/heremaps","download_url":"https://codeload.github.com/heremaps/here-azure-serverless/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248087781,"owners_count":21045589,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-06T20:07:45.232Z","updated_at":"2025-04-09T18:31:37.026Z","avatar_url":"https://github.com/heremaps.png","language":"JavaScript","readme":"## HERE Location Services for Microsoft Azure\n\n### Introduction\n\nThis project provides [Azure Functions](https://azure.microsoft.com/en-in/services/functions/) as **proxies** for several of the [HERE Location Services APIs](https://developer.here.com/documentation). These Azure Functions are packaged as per the [Azure Resource Manager Template](https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-overview).\n\nThe Azure Resource Manager Template (ARM Template) defines a simplified syntax for expressing serverless resources.\n\n### Benefits\n\nAzure Serverless Compute scales from none to thousands of concurrent functions almost instantly to match your workload, and reacts to events in near-real time. There are scenarios, where these functions can be integrated with front-end components, such as Event Hub or Service Bus, and back-end components, such as Cosmos DB, etc.\n\nWe welcome pull requests for anything, such as breaking, error handling, etc.\n\n### Implementation Application Architecture\n\nThe following examples show the types of applications deployed with Azure Serverless Functions:\n\n1. Data Streams ARM Template - uses Event Hub for real time data processing.\n\n![Architecture](images/data_streams.png)\n\n2. WebApp Backend ARM Template - uses Service Bus for request processing in batches.\n\n![Architecture](images/webapp_backend.png)\n\n### Requirements\n\nYou must obtain HERE API credentials to call HERE Maps APIs through the proxies in this project. You can start by obtaining a [Freemium plan](https://developer.here.com/plans?utm_medium=referral\u0026utm_source=azure_marketplace_hlsfuntions\u0026create=Freemium-Basic).\n\n### List of APIs with Azure Functions Proxies\n\n* [Geocoding and Search API v7](https://developer.here.com/documentation/geocoding-search-api/dev_guide/index.html.html)\n* [Map Image API](https://developer.here.com/documentation/map-image/topics/introduction.html)\n* [Map Tile API](https://developer.here.com/documentation/map-tile/topics/introduction.html)\n* [Positioning API](https://developer.here.com/documentation/positioning/topics/introduction.html)\n* [Routing API v8](https://developer.here.com/documentation/routing/topics/overview.html)\n* [Fleet Telematics](https://developer.here.com/documentation/fleet-telematics/dev_guide/index.html)\n* [Public Transit API v8](https://developer.here.com/documentation/public-transit/dev_guide/index.html)\n\n### Setup\n\n### Step 1: Register for an API Key\n\nVisit the [HERE Location Suite Freemium Plan](https://developer.here.com/plans?utm_medium=referral\u0026utm_source=azure_marketplace_hlsfuntions\u0026create=Freemium-Basic) to obtain an `apikey`.\n\n`apikey` is used to identify and authenticate your application.\n\n### Step 2: Register for an Azure Account\n\nVisit [Azure](https://azure.microsoft.com/free/) and sign up for a free account.\n\n### Step 3: Install the Azure CLI\n\nDownload and install the [Azure CLI](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli), and run `az login` by following the directions found in the  [Azure CLI User Guide](https://docs.microsoft.com/en-us/cli/azure/get-started-with-azure-cli?view=azure-cli-latest).\n\n### Step 4: Get the Source\n\nClone [this repository](https://github.com/heremaps/here-azure-serverless) or download the ZIP file.\n\n### Step 5: Build the Code\n\nA build script is included at the root level in this repository. As a prerequisite, you must have the following tools installed on your machine:\n\n* [NodeJS](https://nodejs.org) (Install an LTS version.)\n* [Microsoft dotnet SDK](https://dotnet.microsoft.com/download)\n* [Azure Functions Core tools 2.x](https://docs.microsoft.com/en-us/azure/azure-functions/functions-run-local)\n\n`$ ./build.sh`\n\nThe build script creates a `dist` folder, where the required `npm packages` and the Azure extension are installed.\n\nIn summary, the build script installs:\n\n1. Three Marketplace Offerings (a solution template and a ZIP file containing code and dependencies):\n\n* Data Streams (provisions Event Hub, serverless functions, and Cosmos DB)\n* WebApp Backend (provisions Service Bus, serverless functions, and Cosmos DB)\n* Serverless Functions (provisions collection of HERE API functions)\n\n2. Three ARM Templates (an ARM template and a ZIP file containing code and dependencies):\n\n* Data Streams (provisions Event Hub, serverless functions, and Cosmos DB)\n* WebApp Backend (provisions Service Bus, serverless functions, and  Cosmos DB)\n* Serverless Functions (provisions collection of HERE API functions)\n\n3. Seven individual serverless functions:\n\n* These serverless functions are available in the serverless library.\n\nOnce the build is finished, the code ZIP files required for deployment can be found in the `dist/deployable` directory.\n\nRefer to the following directories for more information:\n\n* `azureMarketplacePublishing`: HERE uses this for publishing on Marketplace.\n* `azureMarketplace`:  as `azureMarketplacePublishing`, can be used as part of an ARM template based deployment.\n* `serverlesslibrary`: ZIP file for the seven serverless functions.\n\n### Step 6: Deploy\n\nDeployment can be performed using the locally available template or publicly accessible template links.\n\nCode ZIP files created by the build script must be accessible through a public URL. Any hosting platform, including OneDrive, Google Drive, etc. can be used.\n\nIf you wish to utilize Azure Blob Storage, please refer to [Azure Blob Storage](https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blobs-introduction) for more information.\n\nThe ARM Templates can be deployed in a number of ways:\n\n* [Deploy Portal](https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-template-deploy-portal)\n* [Deploy CLI](https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-template-deploy-cli)\n* [Deploy PowerShell](https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-template-deploy)\n\n### Function Access Key/Authorizatton\n\nAzure functions support different access levels, and this project employs them as functions. As a result, each function has a different access key. However, a host key can also be used as a single key to access all functions deployed under the same function app.\n\nYou can find these keys under the \"Manage\" section of provisioned functions on the portal.\n\nFor more information, refer to [Azure Function HTTP Trigger \u0026 Bindings](https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-http-webhook).\n\nThe following examples do not include keys. To provide a key, you use a URL parameter `\u0026code=\u003cfunction/host-key\u003e` or add a HTTP header `x-functions-key` as part of the request.\n\n### HERE Maps APIs with Function Proxies\n\nEach of the HERE Maps APIs listed below has one Function as a proxy.\nBelow table shows how an existing HERE API URL can be mapped to Azure Function URL once deployed.\n\nIndividual API examples for each API are as shown below.\n\n### Geocoding and Search API v7\n\nURL Mapping\n\n|API                  | HERE URL Prefix                                 |  Azure Function App URL Prefix |\n|-------------------- |-------------------------------------------------|-----------------------------------------------------------|\n|Discover             | `https://discover.search.hereapi.com/`          |  `https://\u003cfnAppName\u003e.azurewebsites.net/api/geocoder/` |\n|Geocode              | `https://geocode.search.hereapi.com/`           |  `https://\u003cfnAppName\u003e.azurewebsites.net/api/geocoder/`\n|Autosuggest          | `https://autosuggest.search.hereapi.com/`       |  `https://\u003cfnAppName\u003e.azurewebsites.net/api/geocoder/`\n|Browse               | `https://browse.search.hereapi.com/`            |  `https://\u003cfnAppName\u003e.azurewebsites.net/api/geocoder/`\n|Lookup               | `https://lookup.search.hereapi.com/`            |  `https://\u003cfnAppName\u003e.azurewebsites.net/api/geocoder/`\n|Reverse Geocode      | `https://revgeocode.search.hereapi.com/`        |  `https://\u003cfnAppName\u003e.azurewebsites.net/api/geocoder/`\n\nAn example of an HTTP GET request to HERE Geocoding and Search API \u0026 equivalent AWS Lambda Proxy:\n\n An example of an HTTP GET request to discover API:\n`https://discover.search.hereapi.com/v1/discover?apikey=\u003capikey\u003e\u0026at=42.36399,-71.05493\u0026limit=1\u0026q=restaurant\u0026in=countryCode:USA` \n\n To call the Function Proxy, replace the original URL with the API Gateway URL and change the Query String Parameters as shown in the following example. \n\n An example of a HTTP GET request to the equivalent Azure Function Proxy: \n\n `https://\u003cfnAppName\u003e.azurewebsites.net/api/geocoder/v1/discover?at=42.36399,-71.05493\u0026limit=1\u0026q=restaurant\u0026in=countryCode:USA\u0026code=\u003cfncode\u003e`\n\n An example of an HTTP GET request to HERE geocode API: \n\n `https://geocode.search.hereapi.com/v1/geocode?apikey=\u003capikey\u003e\u0026q=5 Rue Daunou, 75000 Paris, France`\n\n To call the Function Proxy, replace the original URL with the API Gateway URL and change the Query String Parameters as shown in the following example. \n\n An example of a HTTP GET request to the equivalent Azure Function Proxy: \n\n`https://\u003cfnAppName\u003e.azurewebsites.net/api/geocoder/v1/geocode?q=5 Rue Daunou, 75000 Paris, France\u0026code=\u003cfncode\u003e`\n\nAn example of an HTTP GET request to HERE autosuggest API: \n\n`https://autosuggest.search.hereapi.com/v1/autosuggest?apikey=\u003capikey\u003e\u0026at=52.5199813,13.3985138\u0026q=berlin bran`\n\nTo call the Function Proxy, replace the original URL with the API Gateway URL and change the Query String Parameters as shown in the following example. \n\nAn example of a HTTP GET request to the equivalent Azure Function Proxy: \n\n`https://\u003cfnAppName\u003e.azurewebsites.net/api/geocoder/v1/autosuggest?at=52.5199813,13.3985138\u0026q=berlin bran\u0026code=\u003cfncode\u003e`\n\nAn example of an HTTP GET request to HERE browse API: \n\n`https://browse.search.hereapi.com/v1/browse?apikey=\u003capikey\u003e\u0026at=-23.000813,-43.351629\u0026limit=2\u0026categories=100-1100,200-2000-0011,100-1000`\n\nTo call the Function Proxy, replace the original URL with the API Gateway URL and change the Query String Parameters as shown in the following example. \n\nAn example of a HTTP GET request to the equivalent Azure Function Proxy: \n\n`https://\u003cfnAppName\u003e.azurewebsites.net/api/geocoder/v1/browse?at=-23.000813,-43.351629\u0026limit=2\u0026categories=100-1100,200-2000-0011,100-1000\u0026code=\u003cfncode\u003e`\n\n An example of an HTTP GET request to HERE lookup API: \n\n `https://lookup.search.hereapi.com/v1/lookup?apikey=\u003capikey\u003e\u0026 id=here:pds:place:276u0vhj-b0bace6448ae4b0fbc1d5e323998a7d2`\n\n To call the Function Proxy, replace the original URL with the API Gateway URL and change the Query String Parameters as shown in the following example. \n\n An example of a HTTP GET request to the equivalent Azure Function Proxy: \n\n `https://\u003cfnAppName\u003e.azurewebsites.net/api/geocoder/v1/lookup?id=here:pds:place:276u0vhj-b0bace6448ae4b0fbc1d5e323998a7d2\u0026code=\u003cfncode\u003e`\n\n An example of an HTTP GET request to HERE revgeocode API: \n\n `https://revgeocode.search.hereapi.com/v1/revgeocode?apikey=\u003capikey\u003e\u0026at=48.2181679%2C16.3899064\u0026lang=en-US`\n\n To call the Function Proxy, replace the original URL with the API Gateway URL and change the Query String Parameters as shown in the following example. \n\n An example of a HTTP GET request to the equivalent Azure Function Proxy: \n\n`https://\u003cfnAppName\u003e.azurewebsites.net/api/geocoder/v1/revgeocode?at=48.2181679%2C16.3899064\u0026lang=en-US\u0026code=\u003cfncode\u003e`\n\n### Map Image API\nURL Mapping\n\n|API                  | HERE URL Prefix                                 |  Azure Function App URL Prefix |\n|-------------------- |-------------------------------------------------|-----------------------------------------------------------|\n|Images               | `https://image.ls.hereapi.com/`                 |  `https://\u003cfnAppName\u003e.azurewebsites.net/api/map_image/`\n\nAn example of a HTTP GET request to the HERE Map Image API:  \n`https://image.ls.hereapi.com/mia/1.6/mapview?c=60.17675,24.929974\u0026nodot\u0026t=0\u0026z=15\u0026apikey=\u003capikey\u003e`\n\nTo call the Function Proxy, replace the original URL with the API Gateway URL and change the Query String Parameters as shown in the following example.\n\nAn example of a HTTP GET request to the equivalent Azure Function Proxy:\n\n`https://\u003cfnAppName\u003e.azurewebsites.net/api/map_image/mia/1.6/mapview?c=60.17675,24.929974\u0026nodot\u0026t=0\u0026z=15\u0026code=\u003cfncode\u003e`\n\n### Map Tile API\nURL Mapping\n\n|API                  | HERE URL Prefix                                 |  Azure Function App URL Prefix |\n|-------------------- |-------------------------------------------------|-----------------------------------------------------------|\n|Traffic              | `https://{1-4}.traffic.maps.ls.hereapi.com/`    |  `https://\u003cfnAppName\u003e.azurewebsites.net/api/map_tile/traffic/`\n|Base                 | `https://{1.4}.base.maps.ls.hereapi.com/`       |  `https://\u003cfnAppName\u003e.azurewebsites.net/api/map_tile/base/`\n|Aerial               | `https://{1.4}.aerial.maps.ls.hereapi.com/`     |  `https://\u003cfnAppName\u003e.azurewebsites.net/api/map_tile/aerial/`\n\nAn example of a HTTP GET request to the HERE Traffic Map Tile API:  \n`https://1.traffic.maps.ls.hereapi.com/maptile/2.1/traffictile/newest/normal.day/11/525/761/512/jpg?pview=ARG\u0026apikey=\u003capikey\u003e`\n\nTo call the Function Proxy, replace the original URL with the API Gateway URL and change the Query String Parameters as shown in the following example.\n\nAn example of a HTTP GET request to the equivalent Azure Function Proxy:\n\n`https://\u003cfnAppName\u003e.azurewebsites.net/api/map_tile/traffic/maptile/2.1/traffictile/newest/normal.day/11/525/761/512/jpg?pview=ARG\u0026code=\u003cfncode\u003e`\n\nAn example of a HTTP GET request to the HERE Base Map Tile API:  \n`https://1.base.maps.ls.hereapi.com/maptile/2.1/maptile/newest/normal.day/13/4400/2686/256/png8?apiKey=\u003capiKey\u003e`\n\nTo call the Function Proxy, replace the original URL with the API Gateway URL and change the Query String Parameters as shown in the following example.\n\nAn example of a HTTP GET request to the equivalent Azure Function Proxy:\n\n`https://\u003cfnAppName\u003e.azurewebsites.net/api/map_tile/base/maptile/2.1/maptile/newest/normal.day/13/4400/2686/256/png8?code=\u003cfncode\u003e`\n\nAn example of a HTTP GET request to the HERE Aerial Map Tile API:  \n`https://1.aerial.maps.ls.hereapi.com/maptile/2.1/labeltile/newest/hybrid.day/5/5/10/256/jpg?apiKey=\u003capiKey\u003e`\n\nTo call the Function Proxy, replace the original URL with the API Gateway URL and change the Query String Parameters as shown in the following example.\n\nAn example of a HTTP GET request to the equivalent Azure Function Proxy:\n\n`https://\u003cfnAppName\u003e.azurewebsites.net/api/map_tile/aerial/maptile/2.1/labeltile/newest/hybrid.day/5/5/10/256/jpg?code=\u003cfncode\u003e`\n\n### HERE Positioning API\n\n**Note:** this API call requires a HTTP **POST**. \nURL Mapping\n\n|API                  | HERE URL Prefix                                 |  Azure Function App URL Prefix |\n|-------------------- |-------------------------------------------------|-----------------------------------------------------------|\n|Positioning          | `https://pos.ls.hereapi.com/positioning/`       |  `https://\u003cfnAppName\u003e.azurewebsites.net/api/positioning/`\n\nAn example of a HTTP POST request to the Positioning API: \n\n`curl -i -X POST -H 'Content-Type: application/json' -d  '{ \"gsm\": [ {\"mcc\": 262,\"mnc\": 1,\"lac\": 5126,\"cid\": 16504,\"nmr\": [{\"bsic\": \"6\",\"bcch\": \"82\"},{\"bsic\": \"7\",\"bcch\": \"85\"},{\"bsic\": \"12\",\"bcch\": \"93\"},{\"bsic\": \"13\",\"bcch\": \"88\"},{\"bsic\": \"19\",\"bcch\": \"88\"}]}]}' https://pos.ls.hereapi.com/positioning/v1/locate?apikey=\u003capikey\u003e`\n\n\nAn example of a HTTP POST request to the equivalent Azure Function Proxy:\n\n`curl -i -X POST -H 'Content-Type: application/json' -d  '{ \"gsm\": [ {\"mcc\": 262,\"mnc\": 1,\"lac\": 5126,\"cid\": 16504,\"nmr\": [{\"bsic\": \"6\",\"bcch\": \"82\"},{\"bsic\": \"7\",\"bcch\": \"85\"},{\"bsic\": \"12\",\"bcch\": \"93\"},{\"bsic\": \"13\",\"bcch\": \"88\"},{\"bsic\": \"19\",\"bcch\": \"88\"}]}]}' https://\u003cfnAppName\u003e.azurewebsites.net/api/positioning/v1/locate`\n\n### HERE Routing API\nURL Mapping\n\n|API                  | HERE URL Prefix                                 |  Azure Function App URL Prefix |\n|-------------------- |-------------------------------------------------|-----------------------------------------------------------|\n|CalculateRoute       | `https://router.hereapi.com/`                 |  `https://\u003cfnAppName\u003e.azurewebsites.net/api/routing/`\n|Routing(Isoline)     | `https://isoline.route.ls.hereapi.com/`       |  `https://\u003cfnAppName\u003e.azurewebsites.net/api/routing/isoline.route/`\n|Routing(Matrix)      | `https://matrix.route.ls.hereapi.com/`        |  `https://\u003cfnAppName\u003e.azurewebsites.net/api/routing/matrix.route/`\n\n An example of an HTTP GET request to HERE CalculateRoute API:\n `https://router.hereapi.com/v8/routes?apikey=\u003capiKey\u003e\u0026transportMode=car\u0026origin=52.5308,13.3847\u0026destination=52.5323,13.3789\u0026return=summary`\n\n  To call the Lambda proxy instead, replace the original URL with the API Gateway URL, change the type, resourcePath and Query String Parameters as follows:\n\nAn example of a HTTP GET request to the equivalent Azure Function Proxy: \n\n`https://\u003cfnAppName\u003e.azurewebsites.net/api/routing/v8/routes/?transportMode=car\u0026origin=52.5308,13.3847\u0026destination=52.5323,13.3789\u0026return=summary\u0026code=\u003cfncode\u003e`\n\nAn example of an HTTP GET request to HERE Routing(Isoline) API:\n `https://isoline.route.ls.hereapi.com/routing/7.2/calculateisoline.json?apiKey=\u003capiKey\u003e\u0026mode=fastest%3Bpedestrian\u0026start=52.5160%2C13.3778\u0026rangetype=distance\u0026range=2000`\n\n  To call the Lambda proxy instead, replace the original URL with the API Gateway URL, change the type, resourcePath and Query String Parameters as follows:\n\nAn example of a HTTP GET request to the equivalent Azure Function Proxy: \n\n`https://\u003cfnAppName\u003e.azurewebsites.net/api/routing/7.2/calculateisoline.json?mode=fastest%3Bpedestrian\u0026start=52.5160%2C13.3778\u0026rangetype=distance\u0026range=2000\u0026code=\u003cfncode\u003e`\n\n\n An example of an HTTP GET request to HERE Routing(Matrix) API:\n `https://matrix.route.ls.hereapi.com/routing/7.2/calculatematrix.json?apiKey=\u003capiKey\u003e\u0026mode=fastest%3Btruck%3Btraffic%3Adisabled%3B\u0026start0=40.7790%2C-73.9622\u0026destination0=40.7482%2C-73.9860\u0026destination1=40.7558%2C-73.9870\u0026destination2=40.7054%2C-73.9961`\n\n  To call the Lambda proxy instead, replace the original URL with the API Gateway URL, change the type, resourcePath and Query String Parameters as follows:\n\nAn example of a HTTP GET request to the equivalent Azure Function Proxy: \n\n`https://\u003cfnAppName\u003e.azurewebsites.net/api/routing/7.2/calculatematrix.json?mode=fastest%3Btruck%3Btraffic%3Adisabled%3B\u0026start0=40.7790%2C-73.9622\u0026destination0=40.7482%2C-73.9860\u0026destination1=40.7558%2C-73.9870\u0026destination2=40.7054%2C-73.9961\u0026code=\u003cfncode\u003e`\n\n ### HERE Fleet Telematics\nURL Mapping\n\n|API                  | HERE URL Prefix                                 |  Azure Function App URL Prefix |\n|-------------------- |-------------------------------------------------|-----------------------------------------------------------|\n|Fleet Telematics     | `https://fleet.ls.hereapi.com/`                 |  `https://\u003cfnAppName\u003e.azurewebsites.net/api/fleet`\n\nAn example of a HTTP GET request to the HERE Fleet Telematics API:  \n`https://fleet.ls.hereapi.com/2/calculateroute.json?apiKey=\u003capiKey\u003e\u0026waypoint0=50.112698%2C8.675777\u0026waypoint1=48.544180%2C9.662530\u0026mode=fastest%3Bcar%3Btraffic%3Adisabled`\n\nTo call the Function Proxy, replace the original URL with the API Gateway URL and change the Query String Parameters as shown in the following example.\n\nAn example of a HTTP GET request to the equivalent Azure Function Proxy:\n\n`https://\u003cfnAppName\u003e.azurewebsites.net/api/fleet/2/calculateroute.json?waypoint0=50.112698%2C8.675777\u0026waypoint1=48.544180%2C9.662530\u0026mode=fastest%3Bcar%3Btraffic%3Adisabled\u0026code=\u003cfncode\u003e`\n\n### HERE Public Transit API V8\nURL Mapping\n\n|API                  | HERE URL Prefix                                 |  Azure Function App URL Prefix |\n|-------------------- |-------------------------------------------------|-----------------------------------------------------------|\n|Next Departures      | `https://transit.hereapi.com/v8/departures`     |  `https://\u003cfnAppName\u003e.azurewebsites.net/api/public_transit/departures`\n|Station Search       | `https://transit.hereapi.com/v8/stations`       |  `https://\u003cfnAppName\u003e.azurewebsites.net/api/public_transit/stations`\n|Routing              | `https://transit.hereapi.com/v8/routes`         |  `https://\u003cfnAppName\u003e.azurewebsites.net/api/public_transit/routes`\n\nAn example of a HTTP GET request to the HERE Next Departures API: \n\n`https://transit.hereapi.com/v8/departures?in=41.900138,12.501924;r=500\u0026apikey=\u003capikey\u003e`\n\nTo call the Function Proxy, replace the original URL with the API Gateway URL and change the Query String Parameters as shown in the following example.\n\nAn example of a HTTP GET request to the equivalent Azure Function Proxy:\n\n`https://\u003cfnAppName\u003e.azurewebsites.net/api/public_transit/departures?in=41.900138,12.501924;r=500\u0026code=\u003cfncode\u003e`\n\nAn example of a HTTP GET request to HERE Station Search API:  \n`https:/transit.hereapi.com/v8/stations?apiKey=\u003capiKey\u003e\u0026in=41.90123,12.500912`\n\nTo call the Function Proxy, replace the original URL with the API Gateway URL and change the Query String Parameters as shown in the following example.\n\nAn example of a HTTP GET request to the equivalent Azure Function Proxy:\n\n`https://\u003cfnAppName\u003e.azurewebsites.net/api/public_transit/stations?in=41.90123,12.500912\u0026code=\u003cfncode\u003e`\n\nAn example of a HTTP GET request to the HERE Transit Routing API:  \n`https://transit.hereapi.com/v8/routes?origin=14.46734,78.85423\u0026destination=1.90096,12.50243\u0026apikey=\u003capikey\u003e`\n\nTo call the Function Proxy, replace the original URL with the API Gateway URL and change the Query String Parameters as shown in the following example.\n\nAn example of a HTTP GET request to the equivalent Azure Function Proxy:\n\n`https://\u003cfnAppName\u003e.azurewebsites.net/api/public_transit/routes?origin=14.46734,78.85423\u0026destination=1.90096,12.50243\u0026code=\u003cfncode\u003e`\n\n### License\n\nCopyright (C) 2019 HERE Europe B.V.\n\nSee the [LICENSE](./LICENSE) file in the root of this project for license details.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fheremaps%2Fhere-azure-serverless","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fheremaps%2Fhere-azure-serverless","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fheremaps%2Fhere-azure-serverless/lists"}