Google Veri API'leri Protokolüyle İlgili Temel Bilgiler

Bu dokümanda, bir sorgunun nasıl görüneceği ve sonuçların nasıl görüneceği ile ilgili örnekler de dahil olmak üzere, Google Veri API'ları tarafından kullanılan protokolün temel özellikleri açıklanmaktadır.

Google Veri API'ları hakkında daha fazla bilgi için Google Veri Geliştirici Kılavuzu dokümanını ve Referans Kılavuzu'nu inceleyin.

Kitle

Bu doküman, Google Veri API'ları tarafından kullanılan XML biçimi ve protokolü hakkında genel bir fikir edinmek isteyen kişiler içindir.

Dile özgü istemci kitaplıkları kullanan bir kod yazmak istiyor olsanız bile, istemci kitaplığı soyutlama katmanının içeriğini anlamak için bu dokümanı okuyabilirsiniz.

Bu dokümanda XML, ad alanları, ortak kullanılan feed'ler ve HTTP'deki GET, POST, PUT, DELETE istekleri ile HTTP'nin "kaynak" kavramı hakkında bilgi sahibi olduğunuz varsayılır. Bunlar hakkında daha fazla bilgi için bu dokümanın Ek kaynaklar bölümüne bakın.

Bu dokümanda belirli bir programlama dili kullanılmıyor. İstemciniz, HTTP isteklerinde bulunmanıza ve XML tabanlı yanıtlar ayrıştırmanıza olanak tanıyan herhangi bir programlama dilini kullanarak sunucuyla etkileşim kurabilir.

Örnekler

Aşağıdaki örneklerde, genel bir hizmete gönderebileceğiniz çıplak Veri API'sı protokol istekleri ve alabileceğiniz sonuçlar gösterilmektedir. İsteklerin çeşitli programlama dilleri kullanılarak nasıl gönderileceğine yönelik örnekler için dile özgü örnekleri ve istemci kitaplıklarını inceleyin. Belirli Google hizmetleriyle Google Veri API'larını kullanma hakkında bilgi edinmek için hizmete özel dokümanları inceleyin.

Feed veya başka bir kaynak isteğinde bulunma

/myFeed adlı bir özet akışının olduğunu ve şu anda herhangi bir giriş içermediğini varsayalım. Görmek için aşağıdaki isteği sunucuya gönderin:

GET /myFeed

Sunucunun yanıtı:

200 OK

<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Foo</title>
  <updated>2006-01-23T16:25:00-08:00</updated>
  <id>http://www.example.com/myFeed</id>
  <author>
    <name>Jo March</name>
  </author>
  <link href="/myFeed" rel="self"/>
</feed>

Feed herhangi bir giriş içermese de başlık ve yazarın adı gibi meta verileri içerdiğini unutmayın.

Yeni giriş ekleme

Yeni bir giriş oluşturmak için bir POST isteği gönderin ve yeni girişin XML gösterimini sağlayın:

POST /myFeed

<?xml version="1.0"?>
<entry xmlns="http://www.w3.org/2005/Atom">
  <author>
    <name>Elizabeth Bennet</name> 
    <email>liz@gmail.com</email> 
  </author>
  <title type="text">Entry 1</title>
  <content type="text">This is my entry</content>
</entry>

Standart Atom <id>, <link> veya <updated> öğelerini sağlamadığınızı unutmayın. Sunucu, POST isteğinize yanıt olarak bunları oluşturur. Ayrıca, özet akışının yazarının girişin yazarıyla aynı kişi olması gerekmediğini unutmayın.

Sunucunun yanıtı:

201 CREATED

<?xml version="1.0"?>
<entry xmlns="http://www.w3.org/2005/Atom">
  <id>http://www.example.com/id/1</id>
  <link rel="edit" href="http://example.com/myFeed/1/1/"/>
  <updated>2006-01-23T16:26:03-08:00</updated>
  <author>
    <name>Elizabeth Bennet</name> 
    <email>liz@gmail.com</email> 
  </author>
  <title type="text">Entry 1</title>
  <content type="text">This is my entry</content>
</entry>

Dize arama

Belirli bir dizede tam metin araması yapmak için tam metin aramalarını destekleyen bir hizmeti kullanırken q parametresiyle bir GET isteği gönderin. Sorgu parametreleri hakkında daha fazla bilgi için protokol başvuru dokümanındaki Sorgu istekleri bölümüne bakın.

GET /myFeed?q=This

Sunucu, This arama dizesiyle eşleşen tüm girişlerle yanıt verir. (Bu durumda yalnızca bir tane vardır.)

200 OK

<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Foo</title>
  <updated>2006-01-23T16:26:03-08:00</updated>
  <id>http://www.example.com/myFeed</id>
  <author>
    <name>Jo March</name>
  </author>
  <link href="/myFeed" rel="self"/>
  <entry>
    <id>http://www.example.com/id/1</id>
    <link rel="edit" href="http://example.com/myFeed/1/1/"/>
    <updated>2006-01-23T16:26:03-08:00</updated>
    <author>
      <name>Elizabeth Bennet</name> 
      <email>liz@gmail.com</email> 
    </author>
    <title type="text">Entry 1</title>
    <content type="text">This is my entry</content>
  </entry>
</feed>

Bir girişi güncelleme

Mevcut bir girişi güncellemek için girişin düzenleme URI'si ile PUT kullanın (bir önceki örnekte, <link rel="edit"> öğesinde sunucu tarafından sağlanmıştır).

Güvenlik duvarınız PUT hizmetine izin vermiyorsa bir HTTP POST uygulayın ve yöntem geçersiz kılma başlığını şu şekilde ayarlayın:

X-HTTP-Method-Override: PUT

Aşağıdaki örnekte, girişin metnini eski değerinden ("Bu, benim girişim") yeni bir değerle değiştiriyoruz ("Bu benim ilk girişim").

PUT /myFeed/1/1/

<?xml version="1.0"?>
<entry xmlns="http://www.w3.org/2005/Atom">
  <id>http://www.example.com/id/1</id>
  <link rel="edit" href="http://example.com/myFeed/1/1/"/>
  <updated>2006-01-23T16:28:05-08:00</updated>
  <author>
    <name>Elizabeth Bennet</name> 
    <email>liz@gmail.com</email> 
  </author>
  <title type="text">Entry 1</title>
  <content type="text">This is my first entry.</content>
</entry>

Sunucunun yanıtı:

200 OK

<?xml version="1.0"?>
<entry xmlns="http://www.w3.org/2005/Atom">
  <id>http://www.example.com/id/1</id>
  <link rel="edit" href="http://example.com/myFeed/1/2/"/>
  <updated>2006-01-23T16:28:05-08:00</updated>
  <author>
    <name>Elizabeth Bennet</name> 
    <email>liz@gmail.com</email> 
  </author>
  <title type="text">Entry 1</title>
  <content type="text">This is my first entry.</content>
</entry>

Düzenleme URI'sının değiştiğini unutmayın. URI, "/1/" yerine "/2/" ile biter. Düzenleme URI'sindeki son sayı bir sürüm numarasıdır. Sürümler hakkında daha fazla bilgi için protokol referans dokümanındaki Optimum eşzamanlılık bölümüne bakın.

Yeni girişi bağlam içinde görmek için kaynağın tamamını tekrar isteyin:

GET /myFeed

Sunucunun yanıtı:

200 OK

<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Foo</title>
  <updated>2006-01-23T16:28:05-08:00</updated>
  <id>http://www.example.com/myFeed</id>
  <author>
    <name>Jo March</name>
  </author>
  <link href="/myFeed" rel="self"/>
  <entry>
    <id>http://www.example.com/id/1</id>
    <link rel="edit" href="http://example.com/myFeed/1/2/"/>
    <updated>2006-01-23T16:28:05-08:00</updated>
    <author>
      <name>Elizabeth Bennet</name> 
      <email>liz@gmail.com</email> 
    </author>
    <title type="text">Entry 1</title>
    <content type="text">This is my first entry.</content>
  </entry>
</feed>

Girişi silme

Mevcut bir girişi silmek için, girişin düzenleme URI'sını kullanarak (önceki örnekte sunucu tarafından sağlandığı şekilde) bir DELETE isteği gönderin.

Güvenlik duvarınız DELETE hizmetine izin vermiyorsa bir HTTP POST uygulayın ve yöntem geçersiz kılma başlığını şu şekilde ayarlayın:

 X-HTTP-Method-Override: DELETE

Aşağıdaki örnekte bir giriş silinir:

DELETE /myFeed/1/2/

Sunucunun yanıtı:

200 OK

Feed'de artık herhangi bir giriş olmadığını görmek için GET işlemi daha yapın:

GET /myFeed

Sunucunun yanıtı:

200 OK

<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Foo</title>
  <updated>2006-01-23T16:30:11-08:00</updated>
  <id>http://www.example.com/myFeed</id>
  <author>
    <name>Jo March</name>
  </author>
  <link href="/myFeed" rel="self"/>
</feed>

Silme işlemi başarısız olursa sunucu bir hata koduyla yanıt verir. Daha fazla bilgi için protokol başvuru dokümanındaki HTTP durum kodları bölümüne bakın.

Ek kaynaklar

Aşağıdaki üçüncü taraf dokümanları sizin için yararlı olabilir:

Başa dön