Detta inlägg är gammalt och kan innehålla inaktuell information.

API nycken i serverless app

Hej,

Jag byggeren app som är tänk att visualisera olika lokal data, utan någon form av server. I denna app är det tänk att i produktions versionen hårdkoka in en nykel som kommer användas appen, vilket jag hoppas är tillåtet då den i sig inte är publikt läsbar?

Men, hur rekommenderar ni att man hanterar användning an apiet, då det kommer vara en app så handlar det ju inte om en statisk plats, utan en unik plats för varje användare. ResRobot - Stolptidtabeller 2 är tänkt att användas och där önskas då realtids uppdateringar spå förseningar kunna visas för användare. Dessa är ju svåra att lagra lokalt i appen och medför enmängd anrop. Vilken relativt enkelt då med få användare överstiger de begränsningar av anrop som görs.
Har ni någon rekommendation på tillvägagångssätt för detta, då det kan leda till en icke fungerande tjänst?

mvh
Henrik

Kommentarer

  • Egentligen inte, det bästa är att använda en server så att man kan cacha populära hållplatser, som du skriver.

    Det är fortfarande möjligt att få ut en hårdkodad nyckel ur en applikation, men det är inget som vi skulle dra tillbaka din nyckel för. Det finns en liknande fråga (med svar) angående det här: https://support.trafiklab.se/org/trafiklabse/d/spridning-av-api-nycklar/

    // Kevin
    Team Trafiklab
  • Okej. Så för att kunna nyttja detta måste man ha en server. Dock kommer det I sig enbart skjuta problemet framåt eftersom real tids avgången är den intressanta och den behöver ju kollas av lite då och då

    vad är uppdaterings frekvensen på det? Realtids förseningar

    kan man hämta / skapa en unik nyckel per användare? Via api eller liknande?


  • 1. Det är svårt att svara på, det skiljer sig mellan hållplatser beroende på vilken RKM som tillhandahåller källdatan till oss. Det är bäst att anpassa din applikations uppdateringsfrekvens till nyckelkvotan och en okej användasupplevelse.

    2. Nej, inte via API, det är inte meningen att varje konsument av en applikation ska ha sin egen nyckel, då hade vi inte haft nycklar överhuvudtaget. Nycklarna finns till för hålla ned kostnaderna för att drifta och förvalta de servrar och program som gör Trafiklab möjligt, om inte kostnaden hade varit en faktor för oss så hade all data varit helt öppet.

    // Kevin
    Team Trafiklab
  • Absolut, o jag har full förståelse för det, men hur ser man till användandet då ? Är det tänkt att man alltid bara kollar på en stolpe med fast uppsättning?

    I detta projekt är tanken att en användare skall kunna välja en eller flera stolpar och sedan kunna se de nästkommande avgångarna på den platsen. Detta medför då att det kan bli oändligt många olika platser.

    Är detta ett scenario APIerna är tänkta att fungera med?

    //Henrik
  • Hej Henrik

    Det finns 2 sätt hur man kan göra med API nycklar:
    - Du bygger en app, en webbsida, ... : det finns 1 API nyckel, delad av alla användare. Nyckeln blir uppgraderad vid behöv. En exempel är applikationer som Res i Sthlm.

    - Du bygger någonting där en användare (utvecklare) ska köra koden själv (script, webbsida som varje användare hostar själv, öppna-källkod projekt, ...). I detta fall kan varje användare gå in i Trafiklab för att hämta en nyckel. En exempel av detta är Magic-mirror moduler.

    Vissa projekt kan funka på båda sätt. Till exempel informationsskyltar kan använda samma nyckel eller de kan ha en nyckel per "ägare" som installerar en skylt. I detta fall väljer utvecklaren själv hur de gör.

    I ditt fall ser det ut som att det är enklast att varje användare ska hämta sin egen nyckel och att de konfigurerar den någonstans.

    Angående realtidsuppdateringar rekommenderar jag att du inte uppdaterar mer än 1 gång per minut. Om din applikation ska uppdatera i bakgrunden är bästa lösningen att du ändrar uppdateringsfrekvensen dynamiskt, till exempel 1 gång varje 5e minut kl.21-06, en gång varje 3e minut kl.10-16, och varje minut när det är rusningstrafik. Om applikationen bara uppdateras när användaren aktivt använder den (till exempel en vanlig app eller webbsida) kan du uppdatera en gång varje 30 sekunder. Datat själv uppdateras inte mer än 4 gånger per minut, men hur ofta den uppdateras beror på operatörn, om det finns förseningar, ... . Så det kan vara en gång varje 5e minut, eller varje 15 sekunder, men aldrig mer än varje 15e sekund. En app borde inte göra en refresh varje 15 sekunder (det blir för många anrop, och förbättrar upplevelsen inte så mycket), men en proxy-server kan ha en 15 sekunder TTL på cacha data som används till flera klienter.

    Hälsningar,
    Bert

    Bert på Trafiklab

Kommentera eller skriv ett nytt inlägg

Ditt namn och inlägg kan ses av alla. Din e-post visas aldrig publikt.