V-Count API v3.5 Bu dokümanın amacı V-Count veritabanından insan sayma, mağaza önü sayma ve hava durumu verilerinin dışa aktarımı; ciro, fiş, stok ve ürün adedi bilgilerinin veritabanına içe aktarımı yöntemlerini anlatmaktır. 1. İnsan Sayma Verilerinin Dışa Aktarımı - Verilerin dışa aktarımı için kullanıcı POST metodu ile sunucuya istek (request) göndermelidir. Bu isteğin oluşturulmasından ve POST metoduyla gönderilmesinden sonra, kullanıcının seçtiği dönüş tipine göre sql, xml veya json formatında dönüş olacaktır. - İnsan Sayma sonuçları için istekler https://cloud.v-count.com/vcountapi/vcountapi.php adresine gönderilecektir. - Değişkenler POST metodu ile bu sayfaya gönderilmelidir. - Değişkenler username, password, start_date, finish_date, format, store şeklindedir: * Kullanıcı username kısmına firma tarafından temin edilen kullanıcı adını yazmalıdır. * Kullanıcı password kısmına firma tarafından temin edilen şifreyi yazmalıdır. * Kullanıcı elde etmek istediği verilerin başlangıç tarihini, formatı Yıl-Ay-Gün olacak şekilde start_date kısmına yazmalıdır. Kullanıcı tarih aralarına - işareti koymalıdır. Tarihin formatı Yıl-Ay-Gün şeklinde olmalıdır ve rakamlardan oluşmalıdır. Aksi takdirde hata verecektir. * Kullanıcı elde etmek istediği verilerin bitiş tarihini, formatı Yıl-Ay-Gün olacak şekilde finish_date kısmına yazmalıdır. Kullanıcı tarih aralarına - işareti koymalıdır. Tarihin formatı Yıl-Ay-Gün şeklinde olmalıdır ve rakamlardan oluşmalıdır. Aksi takdirde hata verecektir. * Kullanıcı verilerin XML olarak dönmesini istiyorsa format kısmına xml yazmalıdır. * Kullanıcı verilerin SQL olarak dönmesini istiyorsa format kısmına sql yazmalıdır. * Kullanıcı verilerin JSON olarak dönmesini istiyorsa format kısmına json yazmalıdır. 1
* Kullanıcı tüm mağazaların verilerini almak istiyorsa store kısmına all yazmalıdır. Kullanıcı sadece tek bir mağazanın verilerini almak istiyorsa store kısmına verileri istenen mağazanın adını ya da varsa sisteme tanımlanmış kodu yazmalıdır (Mağaza kodlarının sisteme tanımlanması için şirket yetkilisi ile iletişime geçiniz). Kullanıcı belli bir mağaza grubunun verilerini almak istiyorsa store kısmına istenilen mağazalara ait ortak harf grubunu yazmalıdır. Örneğin kullanıcının aşağıdaki gibi 5 mağazası var ise: 1. ANK Kizilay 2. ANK Tunali 3. IST Taksim 4. IST Kadikoy 5. IZM Gundogdu Kullanıcı store kısmına ANK yazarak 1. ve 2. mağazaların verilerini veya IST yazarak 3. ve 4. mağazaların verilerini tek seferde alabilir. - Örnek istek: * username: demo * password: 12345 * format: xml * start_date: 2015-03-15 (15 Mart 2015) * finish_date: 2015-03-17 (17 Mart 2015) * store: ANK Kizilay - Oluşturulan bu değişkenler POST metoduyla belirtilen adrese gönderilmelidir. 2
A. SQL formatı Elde edilen sql formatında, kullanıcının görmek istediği bütün veri tek bir SQL sorgu linki şeklindedir. SQL sorgusu aşağıdaki gibidir: I. Store değişkeni yerine all değeri verilirse, tüm mağazaların sayım sonuçları sql şeklinde elde edilir: INSERT INTO `STATS` (`STORE`, `TIME_FORMATTED`, `IN`) VALUES ( demomagaza1, 2015-03-15 15:00:00, 200); INSERT INTO `STATS` (`STORE`, `TIME_FORMATTED`, `IN`) VALUES ( demomagaza2, 2015-03-15 15:00:00, 210); II. Store değişkeni yerine mağaza adı verilirse, o mağazanın sayım sonuçları sql formatında elde edilir: INSERT INTO `STATS` (`STORE`, `TIME_FORMATTED`, `IN`) VALUES ( demomagaza1, 2015-03-15 15:00:00, 210); INSERT INTO `STATS` (`STORE`, `TIME_FORMATTED`, `IN`) VALUES ( demomagaza1, 2015-03-15 16:00:00, 220); B. XML formatı Elde edilen XML formatında, kullanıcının görmek istediği bütün veri tek bir XML şeklindedir. XML aşağıdaki gibidir: I. Store değişkeni yerine all değeri verilirse, tüm mağazaların sayım sonuçları XML formatında elde edilir: <store>demomagaza1</store> <in>220</in> <store>demomagaza2</store> <in>250</in> 3
Store değişkeni yerine all değeri verilirse ve sistemde mağaza kodları tanımlı ise, tüm mağazaların sayım sonuçları aşağıdaki gibi elde edilir: <store_id>ab123</store_id> <store>demomagaza1</store> <in>220</in> <store_id>ab567</store_id> <store>demomagaza2</store> <in>250</in> II. Store değişkeni yerine mağaza adı verilirse, o mağazanın sayım sonuçları XML formatında elde edilir: <store>demomagaza</store> <in>220</in> Store değişkeni yerine mağaza adı verilirse ve sistemde mağaza kodları tanımlı ise, o mağazanın sayım sonuçları aşağıdaki gibi elde edilir: <store_id>ab123</store_id> <store>demomagaza</store> <in>220</in> 4
C. JSON formatı Elde edilen JSON formatında kullanıcının görmek istediği bütün veri tek bir JSON şeklindedir. JSON aşağıdaki gibidir: I. Store değişkeni yerine all değeri verilirse, tüm mağazaların sayım sonuçları JSON formatında elde edilir: [ { store : demomagaza1, timeformatted : 2015-03-16 09:00:00, in :200}, { store : demomagaza2, timeformatted : 2015-03-16 09:00:00, in :210}, ] II. Store değişkeni yerine mağaza adı verilirse, o mağazanın sayım sonuçları JSON formatında elde edilir: [ { store : demomagaza1, timeformatted : 2015-03-16 09:00:00, in :200}, { store : demomagaza1, timeformatted : 2015-03-16 10:00:00, in :210}, ] 2. Mağaza Kamera Yapısının Dışa Aktarımı - Mağaza kamera yapısının dışa aktarımı için kullanıcı, verilerin dışarı aktarımında olduğu gibi bir istek hazırlamalıdır. İstek POST metoduyla gönderildikten sonra mağaza kamera yapısı xml formatında dönecektir. - Mağaza kamera yapısı için istek https://cloud.v-count.com/vcountapi/clientstores.php adresine gönderilmelidir. - Değişkenler POST metoduyla gönderilmelidir. - Değişkenler sırasıyla username ve password şeklindedir: - Örnek istek: * Kullanıcı sorgu linkinin username kısmına firma tarafından temin edilen kullanıcı adını yazmalıdır. * Kullanıcı sorgu linkinin password kısmına firma tarafından temin edilen şifreyi yazmalıdır. * username: demo * password: 12345 5
A. Dönülen XML içeriği Kullanıcının görmek istediği bütün veri tek bir XML öğesi şeklindedir. XML öğeleri aşağıdaki formata sahiptir: <store> <storename>magaza_adi1</storename> <door> <doorname>kapi_adi1_1</doorname> <device> <devicename>cihaz_adi1_1_1</devicename> <deviceid>1001</deviceid> </device> </door> <door> <doorname>kapi_adi1_2</doorname> <device> <devicename>cihaz_adi1_2_1</devicename> <deviceid>1002</deviceid> </device> <device> <devicename>cihaz_adi1_2_2</devicename> <deviceid>1003</deviceid> </device> </door> </store> <store> <storename>magaza_adi2</storename> <door> <doorname>kapi_adi2_1</doorname> <device> <devicename>cihaz_adi2_1_1</devicename> <deviceid>1004</deviceid> </device> </door> </store> 6
3. Günlük Ciro, Fiş, Stok ve Ürün Adedi Bilgilerinin İçe Aktarımı - Önemli not: Kullanıcı günlük ciro, fiş, stok ve ürün adedi verisi girmek isterse saatlik veri girme seçeneğini kullanmamalıdır. - Kullanıcı bilgileri içe aktarmak için, verilerin dışarı aktarımında olduğu gibi bir istek hazırlamalıdır. Sorgu POST metoduyla gönderildikten sonra verilerin içe aktarımını tamamlanır. - Ciro, fiş, stok ve ürün adedi bilgilerinin içe aktarımı için sorgu https://cloud.v-count.com/vcountapi/sales.php adresine gönderilmelidir. - Değişkenler sırasıyla username, password, date, store, sales, transaction, checkouts ve units şeklindedir: * Kullanıcı username kısmına firma tarafından temin edilen kullanıcı adını yazmalıdır. * Kullanıcı password kısmına firma tarafından temin edilen şifreyi yazmalıdır. * Kullanıcı verilerini eklemek veya değiştirmek istediği mağazanın adını store kısmına yazmalıdır. * Kullanıcı ciro/fiş bilgilerini eklemek veya güncellemek istediği tarihi, formatı Yıl- Ay-Gün olacak şekilde date kısmına yazmalıdır. Kullanıcı tarih aralarına - işareti koymalıdır. Tarihin formatı Yıl-Ay-Gün şeklinde olmalıdır ve rakamlardan oluşmalıdır. Aksi takdirde hata verecektir. * Kullanıcı sales kısmına ciro bilgisini girmelidir. Ciro bilgisi arada virgül ya da nokta olmadan yazılmalıdır ve sayı değeri girilmelidir. Bilgi girilmek istenmiyorsa 0 olarak gönderilebilir ya da boş bırakılabilir. * Kullanıcı transaction kısmına fiş bilgisini girmelidir. Fiş bilgisi arada virgül ya da nokta olmadan yazılmalıdır ve sayı değeri girilmelidir. Bilgi girilmek istenmiyorsa 0 olarak gönderilebilir ya da boş bırakılabilir. * Kullanıcı checkouts kısmına stok bilgisini girmelidir. Stok bilgisi arada virgül ya da nokta olmadan yazılmalıdır ve sayı değeri girilmelidir. Bilgi girilmek istenmiyorsa 0 olarak gönderilebilir ya da boş bırakılabilir. 7
- Örnek istek: * Kullanıcı units kısmına satılan ürün adedi bilgisini girmelidir. Ürün adedi bilgisi arada virgül ya da nokta olmadan yazılmalıdır ve sayı değeri girilmelidir. Bilgi girilmek istenmiyorsa 0 olarak gönderilebilir ya da boş bırakılabilir. * username: demo * password: 12345 * store: IST Kadikoy * date: 2015-03-17 (17 Mart 2015) * sales: 15500 * transaction: 150 * checkouts: 200 * units: 400 4. Saatlik Ciro, Fiş, Stok ve Ürün Adedi Bilgilerinin İçe Aktarımı - Önemli not: Kullanıcı ciro, fiş, stok ve ürün adedi bilgilerini saatlik olarak girmeyi tercih ederse günlük veri girme seçeneğini kullanmamalıdır. Sistem saatlik girilen verileri günlük olarak senkronize etmektedir. - Kullanıcı saatlik bilgileri içe aktarmak için, verilerin dışarı aktarımında olduğu gibi bir istek hazırlamalıdır. - Ciro, fiş, stok ve ürün adedi bilgilerinin içe aktarımı için sorgu https://cloud.v-count.com/vcountapi/sales_hourly.php adresine gönderilmelidir. - Değişkenler username, password, date, hour, store, sales, transaction, checkouts ve units şeklindedir: * Kullanıcı username kısmına firma tarafından temin edilen kullanıcı adını yazmalıdır. * Kullanıcı password kısmına firma tarafından temin edilen şifreyi yazmalıdır. * Kullanıcı verilerini eklemek veya değiştirmek istediği mağazanın adını / kodunu store kısmına yazmalıdır. 8
- Örnek istek: * Kullanıcı ciro, fiş ve checkout bilgilerini eklemek veya güncellemek istediği tarihi, formatı Yıl-Ay-Gün olacak şekilde date kısmına yazmalıdır. Kullanıcı tarih aralarına - işareti koymalıdır. Tarihin formatı Yıl-Ay-Gün şeklinde olmalıdır ve rakamlardan oluşmalıdır. Aksi takdirde hata verecektir. * Kullanıcı saat bilgisini hour kısmına yazmalıdır. Kullanıcı geçerli bir saat değeri (0 ve 23 arasında) vermelidir. Aksi takdirde hata verecektir. * Kullanıcı sales kısmına ciro bilgisini girmelidir. Ciro bilgisi arada virgül ya da nokta olmadan yazılmalıdır ve sayı değeri girilmelidir. Bilgi girilmek istenmiyorsa 0 olarak gönderilebilir ya da boş bırakılabilir. * Kullanıcı transaction kısmına fiş bilgisini girmelidir. Fiş bilgisi arada virgül ya da nokta olmadan yazılmalıdır ve sayı değeri girilmelidir. Bilgi girilmek istenmiyorsa 0 olarak gönderilebilir ya da boş bırakılabilir. * Kullanıcı checkouts kısmına stok bilgisini girmelidir. Stok bilgisi arada virgül ya da nokta olmadan yazılmalıdır ve sayı değeri girilmelidir. Bilgi girilmek istenmiyorsa 0 olarak gönderilebilir ya da boş bırakılabilir. * Kullanıcı units kısmına ürün adedi bilgisini girmelidir. Ürün adedi bilgisi arada virgül ya da nokta olmadan yazılmalıdır ve sayı değeri girilmelidir. Bilgi girilmek istenmiyorsa 0 olarak gönderilebilir ya da boş bırakılabilir. * username: demo * password: 12345 * store: IST Kadikoy * date: 2015-03-17 (17 Mart 2015) * hour: 18 (18:00) * sales: 15500 * transaction: 150 * checkouts: 10 * units: 400 9
5. Etkinliklerin İçe Aktarımı - Etkinliklerin içe aktarımı için kullanıcı bir istek hazırlamalıdır. - Bu istek https://cloud.v-count.com/vcountapi/events.php adresine gönderilmelidir. - Değişkenler username, password, start_date, finish_date, store_names, event_name, event_type ve explanation şeklindedir: * Kullanıcı username kısmına firma tarafından temin edilen kullanıcı adını yazmalıdır. * Kullanıcı password kısmına firma tarafından temin edilen şifreyi yazmalıdır. * Kullanıcı etkinliğin başlangıç tarihini start_date kısmına yazmalıdır. Tarih formatı YYYY-MM-DD HH:mm:00 şeklinde olmalıdır; aksi takdirde sistem hata verir. YYYY: Yılın 4 haneli sayısal, tam gösterimi (örn. 2015). MM: Ayın sıfır dolgulu sayısal gösterimi (örn. 06). DD: Ay günlerinin sıfır dolgulu iki haneli gösterimi (örn. 08 veya 24). HH: Saatin, 24-saatlik sıfır dolgulu gösterimi (örn. 05 veya 22). mm: Sıfır dolgulu dakika gösterimi (örn. 05 veya 30). * Kullanıcı etkinliğin bitiş tarihini finish_date kısmına yazmalıdır. Tarih formatı YYYY-MM-DD HH:mm:00 şeklinde olmalıdır; aksi takdirde sistem hata verir. YYYY: Yılın 4 haneli sayısal, tam gösterimi (örn. 2015). MM: Ayın sıfır dolgulu sayısal gösterimi (örn. 06). DD: Ay günlerinin sıfır dolgulu iki haneli gösterimi (örn. 08 veya 24). HH: Saatin, 24-saatlik sıfır dolgulu gösterimi (örn. 05 veya 22). mm: Sıfır dolgulu dakika gösterimi (örn. 05 veya 30). * Kullanıcı etkinliğin gerçekleşeceği mağazaları store_names kısmına yazmalıdır. Mağaza isimleri / kodları virgül, ile birbirlerinden ayrılmalıdır. * Kullanıcı etkinlik ismini event_name kısmına yazmalıdır. 10
* Kullanıcı etkinlik türünü event_type kısmına yazmalıdır. Olası etkinlik türleri: Konser Kampanya Yetişkin Çocuk - Örnek istek: * Kullanıcı etkinlik içeriğinin kısa bir özetini explanation kısmına yazmalıdır. Açıklama 1024 karakter sayısını geçmemelidir. * username: demo * password: 12345 * start_date: 2015-03-17 10:00:00 * finish_date: 2015-03-24 19:30:00 * store_names: ANK Kizilay, IST Kadikoy, IZM Gundogdu * event_name: %50 İndirim * event_type: Kampanya * explanation: Bütün indirimlerde %50 indirim 6. Hava Durumu Verilerinin Dışa Aktarımı - Verilerin dışa aktarımı için kullanıcı POST metodu ile sunucuya istek (request) göndermelidir. Bu isteğin oluşturulmasından ve POST metoduyla gönderilmesinden sonra, kullanıcının seçtiği dönüş tipine göre xml veya json formatında dönüş olacaktır. - Hava durumu sonuçları için istekler https://cloud.v-count.com/vcountapi/weather.php adresine gönderilecektir. - Değişkenler POST metodu ile bu sayfaya gönderilmelidir. - Değişkenler username, password, format, start_date, finish_date, store, unit şeklindedir: * Kullanıcı username kısmına firma tarafından temin edilen kullanıcı adını yazmalıdır. * Kullanıcı password kısmına firma tarafından temin edilen şifreyi yazmalıdır. 11
* Kullanıcı elde etmek istediği verilerin başlangıç tarihini, formatı Yıl-Ay-Gün olacak şekilde start_date kısmına yazmalıdır. Kullanıcı tarih aralarına - işareti koymalıdır. Tarihin formatı Yıl-Ay-Gün şeklinde olmalıdır ve rakamlardan oluşmalıdır. Aksi takdirde hata verecektir. * Kullanıcı elde etmek istediği verilerin bitiş tarihini, formatı Yıl-Ay-Gün olacak şekilde finish_date kısmına yazmalıdır. Kullanıcı tarih aralarına - işareti koymalıdır. Tarihin formatı Yıl-Ay-Gün şeklinde olmalıdır ve rakamlardan oluşmalıdır. Aksi takdirde hata verecektir. * Kullanıcı verilerin XML olarak dönmesini istiyorsa format kısmına xml yazmalıdır. * Kullanıcı verilerin JSON olarak dönmesini istiyorsa format kısmına json yazmalıdır. * Kullanıcı verilerin Celsius biriminde dönmesini istiyorsa unit kısmına C, Fahrenheit biriminde dönmesini istiyorsa unit kısmına F yazmalıdır. * Kullanıcı tüm mağazaların verilerini almak istiyorsa store kısmına all yazmalıdır. Kullanıcı sadece tek bir mağazanın verilerini almak istiyorsa store kısmına verileri istenen mağazanın adını ya da varsa sisteme tanımlanmış kodu yazmalıdır (Mağaza kodlarının sisteme tanımlanması için şirket yetkilisi ile iletişime geçiniz). Kullanıcı belli bir mağaza grubunun verilerini almak istiyorsa store kısmına istenilen mağazalara ait ortak harf grubunu yazmalıdır. Örneğin kullanıcının aşağıdaki gibi 5 mağazası var ise: 1. ANK Kizilay 2. ANK Tunali 3. IST Taksim 4. IST Kadikoy 5. IZM Gundogdu Kullanıcı store kısmına ANK yazarak 1. ve 2. mağazaların verilerini veya IST yazarak 3. ve 4. mağazaların verilerini tek seferde alabilir. 12
- Örnek istek: * username: demo * password: 12345 * format: xml * start_date: 2015-03-15 (15 Mart 2015) * finish_date: 2015-03-17 (17 Mart 2015) * store: ANK Kizilay * unit: C - Oluşturulan bu değişkenler POST metoduyla belirtilen adrese gönderilmelidir. A. XML formatı Elde edilen XML formatında, kullanıcının görmek istediği bütün veri tek bir XML şeklindedir. XML aşağıdaki gibidir: I. Store değişkeni yerine all değeri verilirse, tüm mağazaların sayım sonuçları XML formatında elde edilir: <weather> <storename>demomagaza1</storename> <date>2012-08-30</date> <degree>36</degree> <condition>açik</condition> </weather> <weather> <storename> DemoMagaza2</storeName> <date>2012-08-30</date> <degree>35</degree> <condition>az bulutlu</condition> </weather> 13
II. Store değişkeni yerine mağaza adı verilirse, o mağazanın sayım sonuçları XML formatında elde edilir: <weather> <storename>demomagaza</storename> <date>2012-08-30</date> <degree>36</degree> <condition>açik</condition> </weather> <weather> <storename>demomagaza</storename> <date>2012-08-31</date> <degree>35</degree> <condition>az bulutlu</condition> </weather> B. JSON formatı Elde edilen JSON formatında kullanıcının görmek istediği bütün veri tek bir JSON şeklindedir. JSON aşağıdaki gibidir: I. Store değişkeni yerine all değeri verilirse, tüm mağazaların sayım sonuçları JSON formatında elde edilir: [ { "NAME": " DemoMagaza1 ", "DATE": "2012-08-30", "TEMPERATURE": "25", "CONDITION": "açik"}, {"NAME": " DemoMagaza2 ", "DATE": "2012-08-30", "TEMPERATURE": "32", "CONDITION": "az bulutlu"}, ] II. Store değişkeni yerine mağaza adı verilirse, o mağazanın sayım sonuçları JSON formatında elde edilir: [ { "NAME": " DemoMagaza ", "DATE": "2013-05-20", "TEMPERATURE": "24", "CONDITION": "açik"}, {"NAME": " DemoMagaza ", "DATE": "2013-05-21", "TEMPERATURE": "22", "CONDITION": "az bulutlu"}, ] 14
7. Mağaza Önü İnsan Sayma Verilerinin Dışa Aktarımı - Verilerin dışa aktarımı için kullanıcı POST metodu ile sunucuya istek (request) göndermelidir. Bu isteğin oluşturulmasından ve POST metoduyla gönderilmesinden sonra, kullanıcının seçtiği dönüş tipine göre sql, xml veya json formatında dönüş olacaktır. - Mağaza Önü İnsan Sayma sonuçları için istekler https://cloud.v-count.com/vcountapi/street_count.php adresine gönderilecektir. - Değişkenler POST metodu ile bu sayfaya gönderilmelidir. - Değişkenler username, password, start_date, finish_date, format, store şeklindedir: * Kullanıcı username kısmına firma tarafından temin edilen kullanıcı adını yazmalıdır. * Kullanıcı password kısmına firma tarafından temin edilen şifreyi yazmalıdır. * Kullanıcı elde etmek istediği verilerin başlangıç tarihini, formatı Yıl-Ay-Gün olacak şekilde start_date kısmına yazmalıdır. Kullanıcı tarih aralarına - işareti koymalıdır. Tarihin formatı Yıl-Ay-Gün şeklinde olmalıdır ve rakamlardan oluşmalıdır. Aksi takdirde hata verecektir. * Kullanıcı elde etmek istediği verilerin bitiş tarihini, formatı Yıl-Ay-Gün olacak şekilde finish_date kısmına yazmalıdır. Kullanıcı tarih aralarına - işareti koymalıdır. Tarihin formatı Yıl-Ay-Gün şeklinde olmalıdır ve rakamlardan oluşmalıdır. Aksi takdirde hata verecektir. * Kullanıcı verilerin XML olarak dönmesini istiyorsa format kısmına xml yazmalıdır. * Kullanıcı verilerin SQL olarak dönmesini istiyorsa format kısmına sql yazmalıdır. * Kullanıcı verilerin JSON olarak dönmesini istiyorsa format kısmına json yazmalıdır. * Kullanıcı tüm mağazaların verilerini almak istiyorsa store kısmına all yazmalıdır. Kullanıcı sadece tek bir mağazanın verilerini almak istiyorsa store kısmına verileri istenen mağazanın adını ya da varsa sisteme tanımlanmış kodu yazmalıdır (Mağaza kodlarının sisteme tanımlanması için şirket yetkilisi ile iletişime geçiniz). 15
Kullanıcı belli bir mağaza grubunun verilerini almak istiyorsa store kısmına istenilen mağazalara ait ortak harf grubunu yazmalıdır. Örneğin kullanıcının aşağıdaki gibi 5 mağazası var ise: 1. ANK Kizilay 2. ANK Tunali 3. IST Taksim 4. IST Kadikoy 5. IZM Gundogdu Kullanıcı store kısmına ANK yazarak 1. ve 2. mağazaların verilerini veya IST yazarak 3. ve 4. mağazaların verilerini tek seferde alabilir. - Örnek istek: * username: demo * password: 12345 * format: xml * start_date: 2015-03-15 (15 Mart 2015) * finish_date: 2015-03-17 (17 Mart 2015) * store: ANK Kizilay - Oluşturulan bu değişkenler POST metoduyla belirtilen adrese gönderilmelidir. A. SQL formatı Elde edilen sql formatında, kullanıcının görmek istediği bütün veri tek bir SQL sorgu linki şeklindedir. SQL sorgusu aşağıdaki gibidir: I. Store değişkeni yerine all değeri verilirse, tüm mağazaların mağaza önü sayım sonuçları sql şeklinde elde edilir: INSERT INTO `STREET_STATS` (`STORE`, `TIME_FORMATTED`, `STREET_COUNT`) VALUES ( demomagaza1, 2015-03-15 15:00:00, 200); INSERT INTO ` STREET_STATS` (`STORE`, `TIME_FORMATTED`, `STREET_COUNT`) VALUES ( demomagaza2, 2015-03-15 15:00:00, 210); 16
II. Store değişkeni yerine mağaza adı verilirse, o mağazanın mağaza önü sayım sonuçları sql formatında elde edilir: INSERT INTO ` STREET_STATS` (`STORE`, `TIME_FORMATTED`, `STREET_COUNT`) VALUES ( demomagaza1, 2015-03-15 15:00:00, 210); INSERT INTO ` STREET_STATS` (`STORE`, `TIME_FORMATTED`, `STREET_COUNT`) VALUES ( demomagaza1, 2015-03-15 16:00:00, 220); B. XML formatı Elde edilen XML formatında, kullanıcının görmek istediği bütün veri tek bir XML şeklindedir. XML aşağıdaki gibidir: I. Store değişkeni yerine all değeri verilirse, tüm mağazaların mağaza önü sayım sonuçları XML formatında elde edilir: <store>demomagaza1</store> <street_count>220</street_count> <store>demomagaza2</store> <street_count>250</street_count> Store değişkeni yerine all değeri verilirse ve sistemde mağaza kodları tanımlı ise, tüm mağazaların mağaza önü sayım sonuçları aşağıdaki gibi elde edilir: <store_id>ab123</store_id> <store>demomagaza1</store> <street_count>220</street_count> <store_id>ab567</store_id> <store>demomagaza2</store> <street_count>250</street_count> 17
II. Store değişkeni yerine mağaza adı verilirse, o mağazanın mağaza önü sayım sonuçları XML formatında elde edilir: <store>demomagaza</store> <street_count>220</street_count> Store değişkeni yerine mağaza adı verilirse ve sistemde mağaza kodları tanımlı ise, o mağazanın mağaza önü sayım sonuçları aşağıdaki gibi elde edilir: <store_id>ab123</store_id> <store>demomagaza</store> <street_count>220</street_count> C. JSON formatı Elde edilen JSON formatında kullanıcının görmek istediği bütün veri tek bir JSON şeklindedir. JSON aşağıdaki gibidir: I. Store değişkeni yerine all değeri verilirse, tüm mağazaların mağaza önü sayım sonuçları JSON formatında elde edilir: [ { store : demomagaza1, timeformatted : 2015-03-16 09:00:00, street_count :200}, { store : demomagaza2, timeformatted : 2015-03-16 09:00:00, street_count :210}, ] II. Store değişkeni yerine mağaza adı verilirse, o mağazanın mağaza önü sayım sonuçları JSON formatında elde edilir: [ { store : demomagaza1, timeformatted : 2015-03-16 09:00:00, street_count :200}, { store : demomagaza1, timeformatted : 2015-03-16 10:00:00, street_count :210}, ] 18
8. Hata Tipleri - Incorrect Username or Password! : Kullanıcı adı veya şifresi yanlış girilmiştir. - Incorrect format type! : Format olarak sql, xml veya json dışında bir tip kullanmıştır. - Incorrect date format! : Tarih formatı üç parçadan oluşmuyor ( - ile ayrılmış) veya bu parçalar rakamlardan oluşmuyor demektir. - Incorrect hour format! : Geçerli bir saat değeri (0 ve 23 arası) verilmemiştir. - Incorrect store name / code! : Mağaza ismi / kodu hatalı ya da bu isimde / kodda bir mağaza bulunmuyor demektir. 19
9. API Kullanımı Örnekleri A. PHP ile API Kullanımı Bu örneği kullanabilmek için PHP nin curl uzantısını etkinleştirmek gerekmektedir. <?php //POST istemi için degiskenler $post_array = array( 'username' => "demo", 'password' => "12345", 'start_date' => "2015-01-01", 'finish_date' => "2015-01-10", 'format' => "xml", 'store' => "IST Kadikoy" ); $url = "https://cloud.v-count.com/vcountapi/vcountapi.php"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $post_array); //POST istemi sonucu $output = curl_exec($ch); //Donulen hata parametreleri $curlerrcode = curl_errno($ch); $curlerr = curl_error($ch);?> curl_close($ch); curl hakkında daha fazla bilgi için: - http://php.net/manual/en/book.curl.php - http://codular.com/curl-with-php 20
B. C# ile API Kullanımı using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Net; using System.Collections.Specialized; namespace vcount_api { class Program { static void Main(string[] args) { //POST istemi için degiskenler string username = "demo", password = "12345", start_date = "2015-01-01", finish_date = "2015-01-10", format = "xml", store = "all"; string uri = "https://cloud.v-count.com/vcountapi/vcountapi.php"; using (WebClient client = new WebClient()) { byte[] response = client.uploadvalues(uri, new NameValueCollection() { { "username", username }, { "password", password }, { "start_date", start_date }, { "finish_date", finish_date }, { "format", format }, { "store", store } }); } } } } string result = System.Text.Encoding.UTF8.GetString(response); Console.WriteLine(result); 21