Ana içeriğe geç

Bir REST API'den Gelen Verilerle Açılır Listeyi Doldurma

Senaryo

Bir form açılır listesinin statik liste yerine harici bir REST hizmetinden seçilebilir değerlerini yüklemesi gerektiğinde bu kılavuzu kullanın.

Neler Öğreneceksiniz

  • REST isteğini yeniden kullanılabilir bir komut modülünde kapsülleme
  • sonucu bir komut veri kaynağı aracılığıyla sunma
  • harici değerleri ve başlıkları açılır liste verilerine eşleme

Zorluk ve Tahmini Süre

  • Zorluk: Orta
  • Tahmini süre: 25 dakika

Varsayılan Bilgiler

Formlar, açılır liste bileşenleri, JavaScript ve JSON yanıtları hakkında bilgi sahibi olmalısınız.

Gerekli Okumalar

Ön Koşullar

  • düzenleyebileceğiniz bir form içeren süreç tanımı
  • komut modülü oluşturma veya düzenleme izni
  • Emakin çalışma zamanından hedef REST hizmetine erişim

Adımlar

Komut Modülü Tanımlama

Bir formdan çağırma gibi istemci tarafında bir hizmet çağrısı yaparken komut modülü tanımlamak zorunludur. Bu yaklaşım, API entegrasyonlarınızı daha düzenli ve yeniden kullanılabilir biçimde yönetmenize yardımcı olur.

  1. Bir komut modülü oluşturun.
  2. Çalıştığınız entegrasyona göre adlandırın. Bu örnekte modülün adı External.

Harici REST hizmetini çağırmak için kullanılan modülün bulunduğu komut modülü düzenleyicisi.

  1. Modülü açın ve şu adlı bir işlev tanımlayarak GetCountries harici hizmeti çağırın.

Şuna benzer bir işlev kullanın:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
function GetCountries() {
    var client, request, response;

    client = $Rest.Create('https://restcountries.com/v3.1/all');

    request = client.Request();

    request.AddHeader('Content-Type', 'application/json');
    request.AddHeader('Accept', '*/*');

    request.AddParameter('fields', 'cca3,name')

    try {
        response = request.Get().ToJson();
    }
    catch (err) {
        throw err;
    }
    return response;   
}

exports.GetCountries = GetCountries;

Bu örnek:

  • çağırır https://restcountries.com/v3.1/all
  • yalnızca şu alanları ister: cca3 ve name alanları
  • JSON yanıtını çağırana döndürür
  • işlevi dışa aktararak süreç tanımının başka yerlerinde yeniden kullanılmasını sağlar

Devam etmeden önce komut modülünü kaydedin.

Açılır Liste Oluşturma

  1. Düzenlemek istediğiniz formu açın.
  2. Yeni bir açılır liste bileşeni ekleyin.
  3. Örneğin, anlamlı bir etiket verin: Select a Country.

Veri Kaynağını Yapılandırma

Aşağıdaki not, sürüm için belgelenen kullanıcı arayüzü davranışını yansıtır: 8.5 daha yeni sürümlerde farklılık gösterebilir.

öğesi ScriptDataSource açılır liste tasarımcısında doğrudan kullanılamıyorsa bileşen XML'ini elle düzenleyin.

ScriptDataSource'u elle eklemek için kullanılan açılır liste XML düzenleyicisi.

  1. Açılır liste bileşenini açın.
  2. Bileşen işaretlemesini düzenlemek için XML'i seçin.
  3. Aşağıdaki parçacığı şunun altına ekleyin: <DataSources>:
1
2
3
4
5
6
7
8
<ScriptDataSource TextFormat="{{name.common}}" ValueFormat="{{cca3}}" Enabled="True">
    <Mappings/>
    <Source>
        <Content><![CDATA[
                return External.GetCountriesAsync();
                ]]></Content>
    </Source>
</ScriptDataSource>

Bu örnekte:

  • TextFormat ülke adını görüntüler
  • ValueFormat ülke kodunu saklar
  • bloğu <Content> şunu çağırır External.GetCountriesAsync()

Info

Komut modülünüzdeki işlevin adı şu olsa da GetCountriesformdan istemci tarafında çağrı yaparken işlev adına Async eklemeniz gerekir (GetCountriesAsync). İstemci tarafı ortamında verilerin eşzamansız olarak alınmasını sağlamak için bu gereklidir.

Değişikliği yaptıktan sonra XML'i kaydedin.

Formu Test Etme

  1. Süreç tanımını kaydedip dağıtın.
  2. Başlatma görevini açın.
  3. Açılır listenin REST hizmetinden gelen değerlerle doldurulduğunu doğrulayın.
  4. Bir seçenek belirleyin ve oluşan XML'i inceleyin.

Kaydedilen değer şu düzeni izlemelidir:

1
2
3
4
5
6
7
8
<Data>
    <ApplicationInfo>
        <Country>
            <Value>CHE</Value>
            <Text>Switzerland</Text>
        </Country>
    </ApplicationInfo>
</Data>

Sonuç

Açılır liste artık seçilebilir değerlerini yeniden kullanılabilir bir komut modülü aracılığıyla harici bir REST API'sinden yüklüyor.

Sonucu Doğrulama

Formu açın ve açılır listenin beklenen etiketleri görüntülediğini ve beklenen değerleri kaydettiğini doğrulayın. Boş yanıtı ve erişilemeyen uç noktayı test edin; formun ham hizmet verileri yerine kontrollü bir sonuç gösterdiğini doğrulayın.

Güvenlik ve Taşınabilirlik Notları

  • Hizmet kimlik bilgilerini ortam yapılandırmasında saklayın; belirteçleri asla komut modülüne veya örnek dosyaya eklemeyin.
  • Yalnızca güvenilir uç noktalara izin verin, yanıt yapısını doğrulayın ve yanıt boyutunu ve zaman aşımı davranışını sınırlandırın.
  • Üretimde kullanmadan önce öğreticideki uç noktayı hedef ortamın sahibi olduğu kararlı bir hizmetle değiştirin.

Sorun Giderme

Açılır liste beklendiği gibi doldurulmuyorsa:

  • Komut modülünde tanımlandığını GetCountries ve dışa aktarıldığını kontrol edin.
  • Formun şunu çağırdığından GetCountriesAsyncemin olun; şunu değil. GetCountries.
  • API uç noktasına Emakin çalışma zamanından erişilebildiğini doğrulayın.
  • Hizmetin verileri beklenen yapıda döndürdüğünü doğrulayın.
  • XML'i ScriptDataSource gözden geçirin ve TextFormat ile ValueFormat yanıt yükünün eşleştiğinden emin olun.

İndirin ve Kendiniz Deneyin

Hızlıca başlamanıza yardımcı olmak için bu kılavuzda açıklanan sürecin indirilebilir bir tanımını sağladık. Ortamınıza REST'ten açılır listeyi doldur.xml dosyasını aktarabilir ve açılır liste işlevselliğini REST API'sinden gelen verilerle test edebilirsiniz.

Sırada Ne Öğrenmeli?