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.