İçindekiler

Örnek 12

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)