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:
- IBM'den Atom'a Genel Bakış
- HTTP 1.1 yöntem tanımları;
GET
,POST
,PUT
veDELETE
için spesifikasyon - HTTP 1.1 durum kodu tanımları
- REST Protokolü oluşturma
- Web Hizmetlerini REST Yolu Olarak Oluşturma
- XML'e Teknik Giriş
- Örneğe göre XML Ad Alanları