close

XML-RPC

Navigasyona git Aramaya git

XML-RPC ( Uzaktan Yordam Çağrısı ), verileri kodlamak için XML'i ve mesaj iletim protokolü olarak HTTP'yi kullanan bir uzaktan yordam çağrısı protokolüdür. [ 1 ]

Çok basit bir protokoldür çünkü sadece birkaç faydalı veri tipi ve komutu ile kısa bir tam açıklama tanımlar. XML-RPC'nin basitliği, kapsamlı belgelere sahip olan ve kullanım için önemli ölçüde yazılım desteği gerektiren çoğu RPC protokolüyle çelişir.

UserLand Software şirketinden Dave Winer tarafından Microsoft ile birlikte 1998'de oluşturuldu . Microsoft'un çok basit olduğunu göz önünde bulundurarak, ona işlevsellikler eklemeye karar verdi, ardından birkaç geliştirme aşamasından sonra standart basit olmaktan çıktı ve şu anda SOAP olarak bilinen hale geldi . Temel bir fark, SOAP prosedürlerinde parametrelerin bir ada sahip olması ve sıralarının önemli olmamasıdır, XML-RPC'de durum böyle değildir . [ 2 ]

Veri türleri

XML-RPC belirtimine göre , [ 3 ] ana veri türleri şunlardır:

İsim Örnek etiketler Tanım
dizi
 <array> 
   <data> 
     <value><i4> 1404 </i4></value> 
     <value><string> Burada bir şey var </string></value> 
     <value><i4> 1 </i4></ değer> 
   </data> 
 </array>
Anahtarları saklamadan değerler dizisi
base64
 <base64> eW91IGNhbid0IHJlYWQgdGhpcyE= </base64>
Temel 64 kodlanmış ikili veri
boole
 <boolean> 1 </boolean>
Mantıksal değer (0 veya 1)
tarih/saat
 <dateTime.iso8601> 19980717T14:08:55 </dateTime.iso8601>
Gün ve saat
çift
 <double> -12.53 </double>
Çift duyarlıklı kayan nokta sayısı
tam sayı
 <i4> 42 </i4>

herhangi biri

 <int> 42 </int>
tam sayı
sicim
 <string> Merhaba dünya </string>
Karakter dizisi (dize). XML kodlamasını takip etmelidir .
yapı
 <struct> 
   <member> 
     <name> foo </name> 
     <value><i4> 1 </i4></value> 
   </member> 
   <member> 
     <name> bar </name> 
     <value><i4> 2 </i4></değer> 
   </member> 
 </struct>
Değer dizisi, anahtarları saklama
sıfır
 <nil/>
Boş değer; bir XML-RPC uzantısı

Örnekler

  • Bir XML-RPC çağrısı şöyle olabilir:
  <?xml version="1.0"?> 
  <methodCall> 
    <methodName> org.wikipedia.DataExchange </methodName> 
    <params> 
      <param> 
         <value><i4> 360 </i4></value> 
      </param> 
      <param> 
         <value><i4> 221 </i4></value> 
      </param> 
    </params> 
  </methodCall>
  • Çağrıya yanıt:
  <?xml version="1.0"?> 
  <methodResponse> 
    <params> 
      <param> 
        <value><string> Veri alışverişi no. 360 by 221 </string></value> 
      </param> 
    </params> 
  </methodResponse>

Uygulamalar

Çeşitli işletim sistemleri, programlama dilleri, ticari ve özgür yazılım lisansları için uygulamalar mevcuttur: [ 4 ] C /C++ , Delphi , Frontier , Guile , Java , Lisp , Microsoft .NET , Perl , PHP , Python , Real Basic , Rebol , Tcl , Web Nesneleri ve Zope .

Bilinen bazı uygulamalar şunlardır:

  • Apache XML-RPC , [ 5 ] Java'da bir uygulama.
  • XMLRPC-EPI , [ 6 ]​ bir C uygulaması.
  • XML-RPC-C , [ 7 ] C ve C++ için bir uygulama.

Referanslar

  1. ^ Simon St. Laurent , Joe Johnston , Edd Dumbill . (Haziran 2001) Web Servislerini XML-RPC O'Reilly ile Programlama. İlk baskı. Dave Winer'ın önsözü. (İngilizcede)
  2. Dave Winer. (31 Mart 2001). Dikkat: SOAP ve XML-RPC UserLand Software, Inc. arasındaki önemli bir fark .
  3. Dave Winer. (15 Haziran 1999) XML-RPC Spesifikasyonu 15 Haziran 2007'de Wayback Machine'de arşivlendi . UserLand Software, Inc.
  4. Dave Winer. (17 Aralık 2003) XML-RPC Uygulamaları UserLand Software, Inc.
  5. Apache Yazılım Vakfı . Apache XML-RPC (İngilizce).
  6. Epinions, Inc. XMLRPC-EPI sourceforge.net.
  7. Eric Kidd. C ve C++ için XML-RPC sourceforge.net.

Ayrıca

Dış bağlantılar