Skip to content

Veri kaynakları ​

App internete çıkamaz. Dış veri gerektiğinde veriyi sunucu çeker, ortak bir şemaya çevirir ve host app'e bridge ile verir. Sağlayıcı API anahtarı panel sunucusunda durur; cihaza, app paketine, init mesajına veya loglara hiçbir zaman yazılmaz.

İlk sağlayıcı weather (hava durumu).

Manifest ​

json
{
  "params": [
    { "key": "city", "type": "text", "label": { "tr": "Şehir", "en": "City" }, "required": true, "default": "İstanbul" }
  ],
  "data": {
    "providers": [{ "id": "weather", "inputs": { "city": "city" } }]
  }
}
  • inputs.city, kök seviyede, i18n olmayan bir text parametresinin anahtarıdır. Panelde kullanıcı şehri bu alana yazar.
  • Sağlayıcı bildirmek data yeteneğini örtük verir; permissions.capabilities içine data yazmak gerekmez.
  • Anahtarı weather olan bir dataset parametresi tanımlanamaz (dataset_provider_conflict).
  • Sağlayıcı eklemek minor sürüm ister ve sürümü platform incelemesine düşürür (yeni yetki: provider:weather). Silmek veya inputs değiştirmek patch'tir.

App tarafı ​

ts
import { Corevo } from '@corevo-ds/app-sdk';
import type { WeatherV1 } from '@corevo-ds/manifest';

function render(weather: WeatherV1 | null) {
  const city = String(Corevo.params.get('city') ?? '').trim();
  if (!weather || weather.location.query !== city) {
    showWaiting();             // veri yok veya şehir değişti, yenisi bekleniyor
    return;
  }
  showTemp(weather.current.temp_c, weather.current.condition);
}

render(Corevo.data.get<WeatherV1>('weather'));
Corevo.data.on<WeatherV1>('weather', render);
  • data.get son değeri veya null döner; data.on yalnız sonraki güncellemeleri verir.
  • null: veri yok (şehir bulunamadı veya henüz çekilmedi). Bekleme durumu gösterin.
  • Sağlayıcı geçici hata verirse host son iyi değeri tutar. fetched_at 3 saatten eskiyse "son güncelleme" notu göstermeniz önerilir.
  • Kullanıcı şehri değiştirince yeni veri gelene kadar eski veri gelebilir; location.query ile karşılaştırın.
  • Veri sunucuda 10–60 dakikada bir yenilenir. Cihaz son veriyi saklar, çevrimdışı açılışta da gösterir.

WeatherV1 ​

AlanAçıklama
schemaSabit 1
locationquery (sorgulanan şehir, aynen), name, country (ISO 3166-1 alpha-2), lat, lon, utc_offset_s
fetched_atSunucunun veriyi çektiği an, ISO-8601 UTC
currenttemp_c, feels_like_c, humidity (0..100), wind_ms, condition, icon_day
daily[]En fazla 5 gün, şehrin yerel günü: date, min_c, max_c, condition, pop (0..1)
hourly[]En fazla 8 saat: time (UTC), temp_c, condition

Birimler her zaman °C ve m/s'dir; dönüşüm app'te yapılır. condition değerleri: clear, few_clouds, clouds, overcast, drizzle, rain, thunderstorm, snow, fog.

Tip, JSON Schema ve doğrulayıcı @corevo-ds/manifest paketindedir: WeatherV1, @corevo-ds/manifest/schema/weather.v1, validateWeatherV1. Örnek veriler: @corevo-ds/manifest/fixtures/providers/weather/istanbul-sunny.json.

Geliştirirken ​

corevo dev sağlayıcı verisini dev/data/weather.json dosyasından okur ve dosya değişince data.update gönderir. Paketteki örneklerden birini kopyalayın:

bash
mkdir -p dev/data
cp node_modules/@corevo-ds/manifest/fixtures/providers/weather/istanbul-sunny.json dev/data/weather.json

@corevo-ds/manifest projede yoksa npm install -D @corevo-ds/manifest ile ekleyin.