Share via


Så här skriver du ett vädertillägg

I det här avsnittet visas en stegvis guide för att skriva ett eget vädertillägg.

Vad är en väderförlängning

Vädertillägget i Data Manager for Agriculture är en manifestfil (JSON) som innehåller fullständig information om API:erna och en mall för varje API-svar (utdata). Därför är tilläggsfilen i huvudsak en API-mallstruktur som definierats av Data Manager for Agriculture, så att den förstår EGENSKAPERNA API-indata (begäran) och utdata (svar).

Väderförlängningsstruktur

På hög nivå är tilläggsfilen en JSON som består av två saker:

  • Providermetadata (JSON-objekt)
  • API-information (JSON-matris)

Providermetadata

Det är ett json-objekt som innehåller information om fälten nedan som är nödvändiga för att unikt identifiera ett tillägg och dess versionsinformation. Informationen i det här avsnittet av tillägget visas för externa kunder på Data Manager for Agriculture Marketplace. Därför extensionId måste & extensionName (för enkel identifiering) och description (för värdeförslag) vara kundfokuserade.

Exempel på providermetadata

"provider": {
    "extensionId": "abc.weather", 
    "extensionName": "ABC weather",
    "description": "Get Weather data from ABC weather into Azure Data Manager for Agriculture platform using this extension",
    "dataCategory": "Weather",
    "farmBeatsSchemaVersion": "1.0",
    "extensionVersion": "1.0",
    "supportUrl": "www.abc.com/support",
    "supportEmail": "support@abc.com"
  }
Information om providermetadata
Namn Type Beskrivning
extensionId sträng ID:t som tillhandahålls på organisationssättet (Contoso) och tjänsten (väder) T.ex. org.service. extensionId är den unika identifieraren för tillägget och det som användarna använder på Data Manager for Agriculture-plattformen för att interagera med tilläggs-API:erna
extensionName sträng Namnet på tillägget som ska användas i Data Manager for Agriculture-tilläggets marknadsplats.
description sträng Beskrivning som anger de funktioner och tjänster som erbjuds av tillägget.
dataCategory sträng För vädertillägg använder du weather.
farmBeatsSchemaVersion sträng Versionen av manifestfilen på sidan Data Manager för jordbruk. Alla uppdateringar av den befintliga manifestfilen leder till en ny version av det här fältet.
extensionVersion sträng Versionen av filnamnstillägget. Börjar med 1.0. Uppdateringar till tilläggsfilen öka det här versionsnumret enligt konventionen om större och mindre uppdateringar.
supportUrl sträng Webbplatslänk för att skapa supportfrågor och vanliga frågor och svar
supportEmail sträng Skicka e-post till supportfrågorna.

API-information

API Information JSON-matrisen (apiInfos) kan delas upp ytterligare i följande strukturella element.

  • API-metadata
  • Autentiseringsparametrar
  • API-indataparametrar
  • Extraherade API-indataparametrar
  • Funktionella parametrar
  • System för enheter
  • Plattforms- och anpassade parametrar
  • Mall för plattform och anpassad

API-metadata

Det här avsnittet består av grundläggande information om det API som används av Data Manager for Agriculture för att identifiera apiName (anropas av användare explicit) och omdirigera API-begäran till höger endpoint baserat på lämplig requestType.

Exempel på API-metadata
"apiInfos": [
    {
          "apiName": "dailyforecast",
          "description": "The Daily Forecast API",
          "endpoint": "https://ag.us.clearapis.com/v1.1/forecast/daily",
          "requestType": "GET",
          "isLoadAPI": "false",
          "typeOfData": "forecast",
          "granularity": "daily",
          "defaultUnitSystem": "us"
    }
]
Information om API-metadata
Namn Type Beskrivning
apiInfos matris JSON-matrisen med objekt, där varje API är ett objekt i apiInfos matrisen.
apiName sträng API-namnet som stöds av tillägget, det är det exakta namnet som användarna anropar till tilläggs-API:erna. Följ samma namngivningskonvention som du nämnde i API-dokumentationen.
description sträng API-beskrivning
slutpunkt sträng API-slutpunkt för Data Manager for Agriculture för att anropa till apiName.
requestType sträng GET eller POST begär PUT typ som stöds av apiName.
isLoadAPI boolean apiName Om är ett direkt-API som aktuella väderdata gör du den här nyckeln till false. För alla inläsnings-API:er (historisk & prognos) behåller du det här fältet som true. isLoadAPI När nyckeln är falseskickas API-svaret direkt till användaren och lagras inte i datahanteraren för jordbrukslagringstjänsten.
typeOfData sträng Värden som stöds för närvarande är Historical och Forecast.
Granularitet sträng Värden som stöds för närvarande är Daily och Hourly.
defaultUnitSystem sträng Ange namnet på standardenhetssystemet som stöds av apiName.

Autentiseringsparametrar

Det här avsnittet tar in de autentiseringsrelaterade parametrarna som stöds av apiName. Eftersom Data Manager for Agriculture stöder två typer av autentiseringsrelaterade nycklar (x-ms-farmBeats-data-provider-id & x-ms-farmBeats-data-provider-key) i API-huvudavsnittet måste tilläggsfilen uttryckligen ange nyckelnamnet för sina respektive autentiseringsnycklar enligt vad som krävs av apiName.

Som Data Manager för jordbruk samlar in autentiseringsinformationen via API-huvudet (i API:et Skapa väderjobb). Mappning av autentiseringsparametrar görs för att säkerställa att Data Manager for Agriculture kan skicka nyckeln i enlighet med tillägget efter behov.

Exempel på autentiseringsparametrar
"apiInfos": [
    "authInputParameters": [
        {
          "farmBeatsAuthMapping": "x-ms-farmBeats-data-provider-id",
          "name": "app_id",
          "isRequired": "true",
          "providerDataType": "string",
          "description": "Provide the APP ID, username etc. that your API supports",
          "location": "apiQuery"
        },
        {
          "farmBeatsAuthMapping": "x-ms-farmBeats-data-provider-key",
          "name": "app_key",
          "isRequired": "true",
          "providerDataType": "string",
          "description": "Provide the API Key or password etc. that your API supports",
          "location": "apiQuery"
        }
      ]
]
Information om autentiseringsparametrar
Namn Type Beskrivning
authInputParameters matris JSON-matris med autentiseringsparametrar, där varje objekt innebär en typ av autentisering som stöds. Använd nyckeln baserat på den autentiseringstyp som stöds av tillägget.
farmBeatsAuthMapping sträng För närvarande stöds två typer av autentiseringsrelaterade nycklar. För API-nyckelbaserad autentisering använder du endast x-ms-farmBeats-data-provider-key objekt, medan båda objektenx-ms-farmBeats-data-provider-key används för APP-ID och APP-nyckelbaserad autentisering x-ms-farmBeats-data-provider-id .
name sträng Namnet på autentiseringsnyckeln som stöds av apiName.
isRequired boolean Är det här namnet en obligatorisk parameter för apiName? Ange sanna eller falska värden.
providerDataType sträng Ange parameterns name datatyp.
description sträng Data manager för jordbruk beskrivning av vad vart och ett farmBeatsAuthMapping av medlen i varje objekt.
plats sträng Var i API:et ska parametern name skickas. Värden som stöds för närvarande är apiQuery & apiHeader.

API-indataparametrar

Det här avsnittet innehåller information om API-signaturen (indataparametrar) som ska anropas till apiName.

Exempel på API-indataparametrar
"apiInfos": [
    "apiInputParameters": [
        {
          "name": "start",
          "isRequired": "true",
          "providerDataType": "double",
          "description": "Start of time range. Valid start values range from zero to nine. Day zero represents the current day.",
          "location": "apiQuery"
        },
        {
          "name": "end",
          "isRequired": "true",
          "providerDataType": "double",
          "description": "End of time range. Valid end values range from zero to nine.",
          "location": "apiQuery"
        },
        {
          "name": "location",
          "isRequired": "true",
          "providerDataType": "string",
          "description": "User-provided latitude and longitude coordinates. Formatted as location=[(<lat_1>,<lon_1>)].",
          "location": "apiQuery"
        },
        {
          "name": "unitcode",
          "isRequired": "false",
          "providerDataType": "string",
          "description": "Unit conversion set to be used. Default is us-std. Valid values are us-std, si-std.",
          "location": "apiQuery"
        },
      ]
]
Information om API-indataparametrar
Namn Type Beskrivning
apiInputParameters matris JSON-matris med API-indataparametrar, där varje objekt betyder en indataparameter som stöds av apiName.
name sträng Namnet på indataparametern som stöds av apiName.
isRequired boolean Är det här namnet en obligatorisk parameter för apiName? Ange sanna eller falska värden.
providerDataType sträng Ange parameterns name datatyp.
description sträng Ange en beskrivning av vad name parametern innebär.
plats sträng Var i API:et ska parametern name skickas. Värden som stöds för närvarande är apiQuery & apiHeader.

Extraherade API-indataparametrar

Det här avsnittet är till för Data Manager för att extrahera indataparametrar som skickas i API-begäran om beräkning och lagring. I det här exemplet skulle Data Manager for Agriculture extrahera platsinformationen (latitud och longitud) från API Input-begäran och lagra dem som en del av varje väderutdata i Data Manager for Agriculture.

Därför måste tillägget tillhandahålla en HandleBars-mall för hur du extraherar platsinformation. Exemplet nedan tyder på att tilläggs-API:et samlar in platsinformation som "lat" för "latitude" och "lon" för "longitude".

Exempel på extraherade API-indataparametrar
"extractedApiInputParameters": [
        {
          "name": "location",
          "template": "{ \"latitude\": \"{{lat}}\", \"longitude\": \"{{lon}}\"  } "
        }
      ]
Information om extraherade API-indataparametrar
Namn Type Beskrivning
extractedApiInputParameters matris JSON-matris med extraheringsfunktioner, där varje objekt anger vilken information som behöver extraheras. För närvarande location är en sådan extrahering.
name sträng Namnet på extraheringen, för närvarande är location det värde som stöds .
mall sträng Mallen HandleBars som visar hur latitud- och longitudinformation samlas in i API-indataparametrarna.

Funktionella parametrar

Det här avsnittet är avsett för de funktioner/funktioner som skapats av Data Manager for Agriculture. För vädertillägg är centroidberäkning en sådan funktion.

När användarna inte anger koordinaterna för latitud/longitud använder Data Manager for Agriculture fältets primära geometri (ID som skickas av användaren) för att beräkna centroiden. De beräknade centroidkoordinaterna skickas som latitud och longitud till tillägget (dataprovidern). För att Data Manager for Agriculture ska kunna förstå användningen av platskoordinater används avsnittet funktionsparametrar.

För att Data Manager for Agriculture ska förstå användningen av latitud och longitud i apiName indataparametrarna förväntas tillägget tillhandahålla nyckeln name som används för att samla in platsinformation följt av en mall för styret för att antyda hur latitud- och longitudvärdena måste skickas.

Exempel på funktionella parametrar
"apiInfos": [
    "functionalParameters": [
        {
          "name": "CentroidCalculation",
          "description": "Provide names of the parameters used to collect latitude and longitude information",
          "functionalParameterEntities": [
            {
              "name": "lat",
              "template": "{ \"lat\": \"{{latitude}}\" } "
            },
            {
              "name": "lon",
              "template": "{ \"lon\": \"{{longitude}}\" } "
            }
          ]
        }
      ],
]
Information om funktionella parametrar
Namn Type Beskrivning
functionalParameters matris JSON-matris med funktioner, där varje objekt innebär en funktion som stöds av Data Manager for Agriculture. För närvarande CentroidCalculation är en sådan funktion.
name sträng Namnet på funktionen, för närvarande är CentroidCalculation det värde som stöds .
description sträng Beskrivning av funktioner i Data Manager för jordbruk.
functionalParameterEntiteter matris JSON-matris med objekt, där varje objekt är specifikt för latitud och longitud.

System för enheter

Det här avsnittet används av Data Manager for Agriculture för att förstå de olika typer av enhetssystem som stöds av tillägget. Därför måste tillägget ange det key namn som används för att samla in information om enheter i API-indata och följt av de olika systemnamnen för enheter (t.ex. us-std) som stöds av apiName.

Exempelsystem för enheter
"unitSystems": 
    {
        "key": "unitcode",
        "values": [
            "us-std",
            "si-std",
            "us-std-precise",
            "si-std-precise"
            ]
    }
Systeminformation för enheter
Namn Type Beskrivning
unitSystems objekt JSON-objekt för att samla in enhetssysteminformationen.
nyckel sträng Namnet på parametern som används för att samla in enhetsinformation i API-indata.
values sträng Lista över systemnamn för enheter som stöds av tillägget.

Plattforms- och anpassade parametrar

I varje väder-API-svar anropas vädermåtten, som skickas som en del av utdata (t.ex. temperatur, daggpunkt osv.) som parametrar.

När det gäller parametrar stöder datahanteraren för jordbruk därför internt följande uppsättning parametrar och behandlar dem som Platform parameters.

  • cloudCover
  • Datetime
  • dewPoint
  • growingDegreeDay
  • Nederbörd
  • tryck
  • relativeHumidity
  • jordfuktighet
  • soilTemperature
  • temperatur
  • Synlighet
  • wetBulbTemperature
  • windChill
  • windDirection
  • windGust
  • windSpeed

Därför skickar alla tillägg som skickar väderparametrar, som inte faller under plattformsparametrarna, dem som en del av Custom parameters. Den största skillnaden mellan plattforms- och kundparametrar är att användare som använder Data Manager för jordbruks-väder-API:er kan fråga och filtrera på plattformsparametrarna (t.ex. temperatur > 30) och inte på anpassade parametrar. Anpassade parametrar skickas dock som en del av väderfrågans utdata.

I det här avsnittet innehåller tillägget information om enheter för var och en av parametrarna för varje enhetssystem som stöds. Med hjälp av den här datahanteraren för jordbruk vet du vad som är den underliggande måttenheten för varje väderparameter baserat på informationen i det här avsnittet av tillägget.

Kommentar

  • För en viss parameter om enheterna inte är tillämpliga ska du inte nämna enheterna enbart för dessa (t.ex. weatherDescriptor)
  • För en viss parameter om enheterna är samma för alla enheter system sedan nämna samma i alla enheter system. (Ex: cloudCover)
Exempel på plattforms- och anpassade parametrar
"apiInfos": [
     "platformParameters": [
        {
          "farmBeatsName": "cloudCover",
          "farmBeatsDataType": "double",
          "description": "The average percentage of sky covered by clouds.",
          "measurementUnits": [
            {
              "unitSystem": "us-std",
              "unit": "%"
            },
            {
              "unitSystem": "us-std-precise",
              "unit": "%"
            },
            {
              "unitSystem": "si-std",
              "unit": "%"
            },
            {
              "unitSystem": "si-std-precise",
              "unit": "%"
            }
          ]
        },
        {
          "farmBeatsName": "dewPoint",
          "farmBeatsDataType": "double",
          "description": "The air temperature at which the air will become saturated, and dew moisture will condense into fog (or dew).",
          "measurementUnits": [
            {
              "unitSystem": "us-std",
              "unit": "F"
            },
            {
              "unitSystem": "us-std-precise",
              "unit": "F"
            },
            {
              "unitSystem": "si-std",
              "unit": "C"
            },
            {
              "unitSystem": "si-std-precise",
              "unit": "C"
            }
          ]
        },
    "customParameters": [
        {
          "providerName": "weatherDescriptor",
          "providerDataType": "string",
          "description": "General weather descriptor data"
        },
        {
          "providerName": "airTempMax",
          "providerDataType": "double",
          "description": "Maximum daily air temperature at two meters above ground level.",
          "measurementUnits": [
            {
              "unitSystem": "us-std",
              "unit": "F"
            },
            {
              "unitSystem": "us-std-precise",
              "unit": "F"
            },
            {
              "unitSystem": "si-std",
              "unit": "C"
            },
            {
              "unitSystem": "si-std-precise",
              "unit": "C"
            }
          ]
        },
]
Information om plattformsparametrar
Namn Type Beskrivning
platformParameters matris JSON-matris med plattformsparametrar där varje objekt är en plattformsparameter.
farmBeatsName sträng Namnet på parametern enligt datahanteraren för jordbruk.
farmBeatsDataType sträng Datatyp för parametern som tillhandahålls av Data Manager för jordbruk.
description sträng Beskrivning av parametern enligt datahanteraren för jordbruk.
measurementUnits sträng JSON-matris med enheter för vart och ett av de enhetssystem values som stöds av tillägget.
unitSystem sträng Enhetssystem value som stöds av tillägget.
unit sträng Måttenhet för den specifika väderparametern Ex: F för dewPoint.
Information om anpassade parametrar
Namn Type Beskrivning
customParameters objekt JSON-matris med anpassade parametrar där varje objekt är en anpassad parameter.
providerName sträng Namnet på parametern enligt tillägget.
providerDataType sträng Datatyp för parametern enligt tillägget.
description sträng Beskrivning av parametern enligt tillägget.
measurementUnits sträng JSON-matris med enheter för vart och ett av de enhetssystem values som stöds av tillägget.
unitSystem sträng Enhetssystem value som stöds av tillägget.
unit sträng Måttenhet för den specifika väderparametern Ex: F för airTempMax.

Plattform och anpassad mall

Mallen är mappningsinformationen som tillhandahålls av tillägget för att konvertera tilläggets API-utdata (JSON-svar) till det format som Data Manager for Agriculture förväntar sig. Med hjälp av dessa olika API-utdataformat kan nu mappas/konverteras enhetligt till ett enda format.

Malllösningen är ett av de mest effektiva sätten att parsa JSON-utdata som tillhandahålls av tillägget. När det gäller vädertillägg förväntar sig Data Manager for Agriculture att tillägget skrivs med hjälp av mallen HandleBars. HandleBars är ett öppen källkod mallspråk med enkla uttryck.

Kommentar

Vi rekommenderar starkt att du provar mallen HandleBars med exemplen och lär dig hur du använder hjälpfunktionerna för att skapa din egen parsningslogik om den inte redan tillhandahålls av Data Manager for Agriculture.

På en hög nivå fungerar det så här mallar fungerar genom att ta API-svaret som indata och generera utdata i det format som förväntas av Data Manager för jordbruk.

Skärmbild av mallflöde.

Som du ser i bilden ovan verifierar du mallen mot respektive API-svar och använder den verifierade mallen i tillägget. Nedan visas ett exempel på ett API-svar och dess respektive plattform och anpassade mall.

Exempel på API-svar
{
    "47,-97": {
        "2016-12-15": {
            "overall": {
                "air_temp_avg": {
                    "unit": "F",
                    "value": -3.0
                },
                "air_temp_max": {
                    "unit": "F",
                    "value": 5.0
                },
                "air_temp_min": {
                    "unit": "F",
                    "value": -11.0
                },
                "cloud_cover_avg": {
                    "unit": "%",
                    "value": 26.4
                },
                "descriptors": {
                    "cloud_cover_descriptor": {
                        "code": 21107,
                        "icon": "https://.../cover_partlycloudyday.png",
                        "text": "Increasing Clouds"
                    },
                    "precipitation_descriptor": {
                        "code": 61113,
                        "icon": "https://.../precip_flurries.png",
                        "text": "Slight Chance of Flurries"
                    },
                    "weather_descriptor": {
                        "code": 61113,
                        "icon": "https://.../precip_flurries.png",
                        "text": "Slight Chance of Flurries"
                    },
                    "wind_direction_descriptor": {
                        "code": 51600,
                        "icon": "https://.../direction_sw.png",
                        "text": "Southwest"
                    },
                    "wind_trend_descriptor": {
                        "code": 10500,
                        "icon": "https://.../error_none.png",
                        "text": "None"
                    }
                },
                "dew_point_avg": {
                    "unit": "F",
                    "value": -11.0
                },
                "dew_point_max": {
                    "unit": "F",
                    "value": -4.0
                },
                "dew_point_min": {
                    "unit": "F",
                    "value": -19.0
                },
                "ice_acc_period": {
                    "unit": "in",
                    "value": 0.0
                },
                "liquid_acc_period": {
                    "unit": "in",
                    "value": 0.0
                },
                "long_wave_radiation_avg": {
                    "unit": "W/m^2",
                    "value": 170.0
                },
                "pet_period": {
                    "unit": "in",
                    "value": 0.009
                },
                "precip_acc_period": {
                    "unit": "in",
                    "value": 0.001
                },
                "precip_prob": {
                    "unit": "%",
                    "value": 10.0
                },
                "relative_humidity_avg": {
                    "unit": "%",
                    "value": 68.0
                },
                "relative_humidity_max": {
                    "unit": "%",
                    "value": 77.0
                },
                "relative_humidity_min": {
                    "unit": "%",
                    "value": 61.0
                },
                "short_wave_radiation_avg": {
                    "unit": "W/m^2",
                    "value": 70.0
                },
                "snow_acc_period": {
                    "unit": "in",
                    "value": 0.02
                },
                "sunshine_duration": {
                    "unit": "hours",
                    "value": 6
                },
                "wind_gust_max": {
                    "unit": "n/a",
                    "value": "n/a"
                },
                "wind_speed_2m_avg": {
                    "unit": "mph",
                    "value": 6.0
                },
                "wind_speed_2m_max": {
                    "unit": "mph",
                    "value": 8.0
                },
                "wind_speed_2m_min": {
                    "unit": "mph",
                    "value": 2.0
                },
                "wind_speed_avg": {
                    "unit": "mph",
                    "value": 8.0
                },
                "wind_speed_max": {
                    "unit": "mph",
                    "value": 11.0
                },
                "wind_speed_min": {
                    "unit": "mph",
                    "value": 3.0
                }
            }
        }
    }
}
Exempel på plattforms- och anpassad mall för api-svaret ovan
{
"apiInfos": {
    "platformTemplate": "{ {{#each .}}\"value\": [{{#each .}} {\"cloudCover\": \"{{overall.cloud_cover_avg.value}}\" ,\"dewPoint\": \"{{overall.dew_point_avg.value}}\" ,\"precipitation\": \"{{overall.precip_acc_period.value}}\" ,\"relativeHumidity\": \"{{overall.relative_humidity_avg.value}}\" ,\"dateTime\": \"{{convertDateInYYYYMMDDToDateTime @key}}\",      \"temperature\": \"{{overall.air_temp_avg.value}}\" ,\"windSpeed\": \"{{overall.wind_speed_avg.value}}\" ,   },{{/each}}]{{/each}} }",
    "customTemplate": "{ {{#each .}}\"value\": [{{#each .}} {\"air_temp_max\": \"{{overall.air_temp_max.value}}\",\"air_temp_min\": \"{{overall.air_temp_min.value}}\",\"cloudCoverDescriptor\": \"{{overall.descriptors.cloud_cover_descriptor.text}}\",\"precipitationDescriptor\": \"{{overall.descriptors.precipitation_descriptor.text}}\",\"weatherDescriptor\": \"{{overall.descriptors.weather_descriptor.text}}\",\"windDirectionDescriptor\": \"{{overall.descriptors.wind_direction_descriptor.text}}\",\"windTrendDescriptor\": \"{{overall.descriptors.wind_trend_descriptor.text}}\",\"dewPointMax\": \"{{overall.dew_point_max.value}}\",\"dewPointMin\": \"{{overall.dew_point_min.value}}\",\"iceAccPeriod\": \"{{overall.ice_acc_period.value}}\",\"liquidAccPeriod\": \"{{overall.liquid_acc_period.value}}\",\"longWaveRadiationAvg\": \"{{overall.long_wave_radiation_avg.value}}\",\"petPeriod\": \"{{overall.pet_period.value}}\",\"precipProb\": \"{{overall.precip_prob.value}}\",\"relativeHumidityMax\": \"{{overall.relative_humidity_max.value}}\",\"relativeHumidityMin\": \"{{overall.relative_humidity_min.value}}\",\"shortWaveRadiationAvg\": \"{{overall.short_wave_radiation_avg.value}}\",\"snowAccPeriod\": \"{{overall.snow_acc_period.value}}\",\"sunshineDuration\": \"{{overall.sunshine_duration.value}}\",\"windSpeed2mAvg\": \"{{overall.wind_speed_2m_avg.value}}\",\"windSpeed2mMax\": \"{{overall.wind_speed_2m_max.value}}\",\"windSpeed2mMin\": \"{{overall.wind_speed_2m_min.value}}\",\"windSpeedMax\": \"{{overall.wind_speed_max.value}}\",\"windSpeedMin\": \"{{overall.wind_speed_min.value}}\",},{{/each}}]{{/each}} }"
}
}

Kommentar

Mallen som genereras från Styret är stränganpassad genom att lägga \"<text>\" till för att göra den kompatibel med JSON-formatet.

Hjälpfunktioner

Hjälpfunktioner används av mallarna för att utföra en specifik transformering av data, som inte stöds internt. Här är hjälpfunktioner som stöds av Data Manager for Agriculture.

Exempel på hjälpfunktioner
Handlebars.registerHelper('splitAndTake', function(title, char, index) {
  var t = title.split(char);
  return t[index];
});
Handlebars.registerHelper('converttime', function(timestamp) {
    return new Date(timestamp);
});
Handlebars.registerHelper('convertunixtime', function(unix_timestamp) {
    return new Date(unix_timestamp * 1000);
});

Vilken åtgärd gör de här hjälpfunktionerna?

  • SplitAndTake(object valueObject, string separator, int index) – Den här funktionen används för att dela en sträng (t.ex. "47,-97") baserat på en avgränsare (t.ex. ",") och tar elementet vid angivet index (t.ex. index=0 ger "47")
  • ConvertDateInFormatToDateTime(objekt dateObject, strängformat) – Den här funktionen används för att parsa ett datum i angivet format (till exempel 2016-12-15) till DateTime-sträng.
  • ConvertUnixTimeToDateTime(object unixTimeStamp) – Den här funktionen används för att konvertera unix-tidsstämpel (1392267600) till datetime-sträng.
  • GetObjectFromListWithKeyValuePair(MatrislistaOfObjects, strängnyckel, strängvärde) – Givet en lista över objekt hämtas objektet baserat på nyckeltype () värde (RAIN) par. I exemplet nedan används för att välja nederbörden för "type": "RAIN" den här funktionen.
{
"precipitation": [
      {
        "type": "SNOW",
        "amount": 0
      },
      {
        "type": "RAIN",
        "amount": 0.01
      }
    ]
}
  • GetValueFromObject(string jsonString, string key) – Givet ett json-objekt som sträng hämtar det värdet baserat på nyckel.

Kommentar

Om tillägget du skriver kräver ytterligare hjälpfunktioner för att parsa API-svaret kontaktar du oss genom att skapa en supportbegäran.