Google SpreadSheet'i veri tabanına dönüştürün.
Google SpreadSheet tablosunu bir veri tabanı olarak kullanabilmek için geliştirilmiş Google Apps Script tabanlı bir JSON API'dır.
PretiumDB'nin sağladığı özellikler şunlardır:
- Okuma
- Oluşturma
- Güncelleme
- Silme
PretiumDB daha güvenli olması açısından kendi sistemini kullanmak yerine, Google Apps Script'i kullanarak bir ara eleman görevi görür. Bu yüzden herhangi bir API anahtarı vermez ve çalışmak için SpreadSheet tablonuzun kimliğine ihtiyaç duyar.
Google SpreadSheet tablosunu açtığınızda https://docs.google.com/spreadsheets/d/abcdef0123456789/... şeklinde bir adresi olur. Bu adreste, abcdef0123456789 kısmında SpreadSheet tablonuzun kimliği bulunur. Sunucuya istekleri atmak için rota /api/abcdef0123456789/... şeklinde olmalıdır.
Önceki başlıkta denildiği gibi, PretiumDB daha güvenli olması açısından kendi sistemini kullanmak yerine, Google Apps Script'i kullanarak bir ara eleman görevi görür (Kendi sistemimiz yazmaya üşendiğimizden değil...). Bu yüzden herhangi bir veriyi kaydetme ihtiyacına sahip değildir, bir günlük de kaydetmez. İsterseniz Github üzerinden kaynak kodunu inceleyebilirsiniz.
/api/abcdef0123456789 rotasına bir GET isteğinde bulunduğunuzda, tablonun ilk sayfasındaki verileri JSON türünde geri döndürür. Örnek olarak Python'da kullanım şöyledir;
import requests
response = requests.get(
"https://.../api/abcdef0123456789"
)Özel bir sayfanın verisini çekmek için /api/abcdef0123456789/Sayfa_Adı rotasına bir GET isteğinde bulunduğunuzda, tablonun Sayfa_Adı isimli sayfasındaki verileri JSON türünde geri döndürür.
import requests
response = requests.get(
"https://.../api/abcdef0123456789/Sayfa_Adı"
)/api/abcdef0123456789 rotasına bir POST isteğinde bulunduğunuzda, tablonun ilk sayfasına yeni bir satır ekler.
import requests, json
headers = {
"Accept": "application/json",
"Content-Type": "application/json"
}
data = [
{
"username": "deneme",
"password": "12345"
}
]
response = requests.post(
"https://.../api/abcdef0123456789/",
headers=headers,
data=json.dumps(data)
)Özel bir sayfanın verisini yenilemek için /api/abcdef0123456789/Sayfa_Adı rotasına bir POST isteğinde bulunduğunuzda, tablonun Sayfa_Adı isimli sayfasına yeni bir satır ekler.
import requests, json
headers = {
"Accept": "application/json",
"Content-Type": "application/json"
}
data = [
{
"username": "deneme",
"password": "12345"
}
]
response = requests.post(
"https://.../api/abcdef0123456789/Sayfa_Adı",
headers=headers,
data=json.dumps(data)
)/api/abcdef0123456789 rotasına bir PATCH isteğinde bulunduğunuzda, tablonun belirlenen satırında bulunan verileri günceller.
import requests, json
headers = {
"Accept": "application/json",
"Content-Type": "application/json"
}
data = [
1,
{
"username": "yasir",
"password": "54321"
}
]
response = requests.patch(
"https://.../api/abcdef0123456789/",
headers=headers,
data=json.dumps(data)
)data listesinin birinci elemanı güncellenecek satır numarasıdır. Özel bir sayfanın verisini yenilemek için /api/abcdef0123456789/Sayfa_Adı rotasına bir PATCH isteğinde bulunduğunuzda, tablonun Sayfa_Adı isimli sayfasının belirlenen satırında bulunan verileri günceller.
import requests, json
headers = {
"Accept": "application/json",
"Content-Type": "application/json"
}
data = [
1,
{
"username": "yasir",
"password": "54321"
}
]
response = requests.patch(
"https://.../api/abcdef0123456789/Sayfa_Adı",
headers=headers,
data=json.dumps(data)
)Aynı şekilde, data listesinin birinci elemanı satır numarasıdır.
NOT: Satır numarası data listesinin birinci elemanının bir numara fazlasıdır. Örnek:
| Satır Numarası | A Sütunu | B Sütun |
|---|---|---|
| 1 | username | password |
| 2 | yasir | 12345 |
| 3 | utku | 67890 |
Eğer data listesinin birinci elemanı 1 ise 2 iki numaralı satırı baz alır.
/api/abcdef0123456789 rotasına bir DELETE isteğinde bulunduğunuzda, tablonun ilk sayfasının belirlenen satırını siler.
import requests, json
headers = {
"Accept": "application/json",
"Content-Type": "application/json"
}
data = [1]
response = requests.delete(
"https://.../api/abcdef0123456789/",
headers=headers,
data=json.dumps(data)
)Özel bir sayfanın verisini yenilemek için /api/abcdef0123456789/Sayfa_Adı rotasına bir DELETE isteğinde bulunduğunuzda, tablonun Sayfa_Adı sayfasından belirlenen satırını siler.