Der dal bietet Services um Daten aus der Datenbank (aktuell MongoDB) zu lesen, oder Daten (new/changed/deleted) in der Datenbank und in den search engines zu aktuallisieren.
Anfragen werden via POST an den dal-Server gesendet. Mittels service=<…>
werden die gewünschten services ausgewählt. Es ist möglich mehrere Services mit einer Anfrage aufzurufen. Diese werden sequentiell abgearbeitet. Je nach Service sind weitere Informationen zu übermitteln.
Allgemein werden Anfragen mit
service=<service> {weitere Parameter}
gestellt und Antworten in der Form
{"duration": <duration for request in seconds>, "<service>": {<answer>}}
hello
service=hello
, wenn der Dienst läuft antwortet er mit:
{"duration": <deltaT>, "hello": "at your service"}
getShopList Antwortet mit einer Listen von allen ShopIds, die existieren.
service=getShopList {"getShopIds": [1,2,...]}
getShopInfo Antwortet mit allen Infos die über den Shop zur Verfügung stehen. url etc.in der Antwort
service=getShopInfo shopId=<shopId> {"duration": 0.09932303428649902, "getShopInfo": {"lastUpdate": "2015-04-29 12:55:12.882000", "currency": "EUR", "shopId": "stest2", "productCount": 25, "visible": true, "coundryCode": "DE", "active": true, "rejectedCount": 2}}
getFeedInfo Antwortet mit zwei Listen, in denen alle imgIds
und alle hash
es von Produkten dieses Kunden aufgeführt sind.
service=getFeedInfo shopId=<shopId> {"duration": 0.10866522789001465, "getFeedInfo": {<imgId>: <hash>, ...}}
cancelShopUpdate Bricht ein Update eines Shops ab
service=cancelShopUpdate shopId=<shopId> {"cancelShopUpdate": {"ack": True}}
shopUpdatePush Erlaubt es Felder in den Infos eines Shops zu ändern
service=shopUpdatePush shopId=<shopId> fields={name1: value1} {"shopUpdatePush": {"ack": True}}
startNewShopUpdate Anmelden eines shopUpdates, Antwortet mit einer updateId oder einer Meldung falls noch ein Update für den Shop in der Query liegt
service=startNewShopUpdate shopId=<shopId> {"duration": 0.04, "startNewShopUpdate": {"updateId": <updateId>}} oder {"duration": 0.04, "startNewShopUpdate": {"error": <message>}}
shopUpdateDone Hinweis das der Parser fertig ist.
service=shopUpdateDone updateId=<updateId> new=<count new> changed=<count changed> removed=<count removed> {"duration": 0.0, "shopUpdateDone": {"ack": true}}
getPendingImages Gibt ein Dictionary {id→imgurl} von alle Produkten eines Shops zurück, die nicht aktiv sind.
service=getPendingImages shopId=<shopId> {"getPendingImages" : {"id1": "http://foo.de/bild.jpg, ..}}
workload Ergebnisse vom Parsen übermitteln <info> Felder noch definieren
service=workload action={new,changed,remove} updateId=<updateId> [item=<info>] {"duration": 0.0, "workload": {"ack": true, "n": <int>}} <info for new/changed>: imgId + metaData <info for removed>: imgId
removeImg Löscht Bilder
service=removeImg shopId=<shopId> [item=<imgId>] {"duration": 0.0, "removeImg": {"ack": true, "deleted": <int>}}
newShopImg Berechnet das enrichment und übernimmt das Bild ins System
service=newShopImg shopId=<shopId> [item=<info>] {"duration": 0.0, "newShopImg": {"rejected": <int>, "added": <int>}}
changeImgMeta Ändert die hinterlegten MetaDaten zum Bild
service=changeImgMeta shopId=<shopId> [item=<info>] {"duration": 0.0, "changeImgMeta": {"ack": true}}
removeShop Löscht alle Bilder von diesem Shop aus der shop_images
?? tbd