Ana içeriğe geç

REST API Verileriyle Bir Açılır Listeyi Doldurma

Senaryo

Bir formdaki açılır listenin sabit bir liste yerine harici bir REST hizmetinden seçilebilir değerleri yüklemesi gerektiğinde bu kılavuzu kullanın.

Önkoşullar

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

Adımlar

Bir Betik Modülü Tanımlayın

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

  1. Bir betik modülü oluşturun.
  2. Modüle, üzerinde çalıştığınız entegrasyona uygun bir ad verin. Bu örnekte modülün adı External.

Harici REST hizmetini çağırmak için kullanılan modülü içeren betik modülü düzenleyicisi.

  1. Modülü açın ve harici hizmeti çağırmak üzere adı GetCountries olan bir işlev tanımlayı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ı cca3 ve name ister
  • JSON yanıtını çağırana döndürür
  • işlevin süreç tanımının başka yerlerinde yeniden kullanılabilmesi için dışa aktarır

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

Açılır Listeyi Oluşturun

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

Veri Kaynağını Yapılandırın

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

ise ScriptDataSource açılır liste tasarımcısında doğrudan kullanılamıyorsa widget 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 widget'ını açın.
  2. Widget işaretlemesini düzenlemek için XML'i seçin.
  3. Aşağıdaki kod parçasını şu öğenin 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
  • blok <Content> şunu çağırır External.GetCountriesAsync()

Info

Betik modülünüzdeki işlevin adı GetCountriesolsa bile formdan istemci tarafı çağrı yaparken işlev adına Async (şunuGetCountriesAsync) eklemelisiniz. İ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 Edin

  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 belirleyip oluşan XML'i inceleyin.

Saklanan değer şu kalıba uymalıdır:

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 betik modülü aracılığıyla harici bir REST API'sinden yükler.

Sorun Giderme

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

  • şunun GetCountries betik modülünde tanımlı ve dışa aktarılmış olduğunu 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 inceleyin ve TextFormat ile ValueFormat yanıt yükündeki değerlerin 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. Şunu içe aktarabilirsiniz: REST'ten açılır listeyi doldur.xml Bunu ortamınıza aktarın ve REST API verileriyle açılır liste işlevselliğini test edin.