Senaryo :
Firmadaki bir stok karta, bir url üzerinden çekeceğimiz resmi ekleyelim.
Örnekler diadevdays sunucusu üzerinde çalışmaktadır.
Örnek Kod (python):
# coding=utf-8
import simplejson
import treq
import base64
import urllib2
from datetime import datetime
from pprint import pprint
wsAdresMain = 'https://diadevdays.ws.dia.com.tr/api/v3/'
firma_kodu = 4
donem_kodu = 1
apikey = "773f9085-9dc8-4f50-b34d-f7b56da33b5f"
def callWs(wsAdres, postBody):
try:
postBody = simplejson.dumps(postBody, cls=simplejson.JSONEncoder)
req = urllib2.Request(wsAdres,
data=postBody,
headers={"Content-Type": "application/json"})
content = urllib2.urlopen(req).read()
except Exception, e:
print("Exception: {}".format(repr(e)))
wsResult = simplejson.loads(content)
return wsResult
loginBody = {"login" :
{"username": "ws",
"password": "ws",
"disconnect_same_user": True,
"lang": "tr",
"params": {"apikey": apikey}
}
}
loginResult = callWs(wsAdresMain + 'sis/json', loginBody)
sessionID = loginResult['msg']
if not sessionID:
pprint("Login yapilamadi!")
exit(0)
stokKartKodu = raw_input("Stok kodunu giriniz: ")
stokListeleBody = {"scf_stokkart_listele" :
{"session_id": sessionID,
"firma_kodu": firma_kodu,
"donem_kodu": donem_kodu,
"filters":[{"field": "stokkartkodu", "operator": "=", "value": stokKartKodu}],
"sorts": [],
"params": {"selectedcolumns": ["_key", "stokkartkodu"]},
"limit": 1,
"offset": 0
}
}
stokListeleResponse = callWs(wsAdresMain + 'scf/json', stokListeleBody)
pprint(stokListeleResponse)
if stokListeleResponse.get('code') != '200':
print("Stok bulunamadi!")
exit(0)
resimURL = raw_input("Eklemek istediginiz resim urlini giriniz: ")
print("Resim url: ", resimURL)
resimData = urllib2.urlopen(resimURL).read()
dosyaEkleBody = {"sis_aws_dosya_ekle" :
{"session_id": sessionID,
"firma_kodu": firma_kodu,
"donem_kodu": donem_kodu,
"kart":
{"kayitturu": "scf_stokkart",
"_key_kayit": stokListeleResponse['result'][0]['_key'],
"order_id": 1,
"ext": "PNG",
"base64data": base64.b64encode(resimData)
}
}
}
dosyaEkleResponse = callWs(wsAdresMain + 'sis/json', dosyaEkleBody)
pprint(dosyaEkleResponse)