ეს იყო კარგი მშრალი დღე Seattle- ში, და ჩემი ქალს გსურთ ცნობილი ვირალური Dubai Chocolate Pistachio Shake. სასიამოვნოდ, ჩვენ გადაწყვიტოს, რომ მოგზაურობა უახლოეს Shake Shack, და ჩვენი შეუზღუდავი, იგი გაყიდა, და ჩვენ გთხოვთ, რომ დაუკავშირდეთ მათ, სანამ მოგზაურობა. არ არსებობს გარანტიას, რომ ეს იქნება ხელმისაწვდომი მომდევნო დღე ასევე, რადგან შეუზღუდავი მომსახურება. ორი დღის შემდეგ, მე ვხედავ, თუ არ არსებობს, და კიდევ ერთხელ მე შეხვდა შეუზღუდავი. მე არ მიყვარს გზა, მე ან უნდა დაუკავშირდეთ მათ, რათა შეამოწმოთ პროდუქტი ან წავიდეთ მათი მაღაზია, რათა შეამოწმოთ, თუ ხელმისაწვდომია. ეს მოიცავს რამდენიმე იდეები ჩემითვის: რა თქმა უნდა, თუ არსებობს AI, რომელიც დაგვიკავშირებს ჩემთვის და გააუმჯობესებს, როდესაც მე უნდა დაჯავშნა, ან დაველოდოთ, რომ ხანგრძლივი ხაზი კლიენტების ტელეფონებისთვის, და დაგვიკავშირდეთ, როდესაც მე მზად ვთქვა ვინმეს? არსებობს გზა, რომ გაგზავნოთ, როდესაც ელემენტი ხელმისაწვდომია Shake Shack- ში? თუ ეს არ არის, შეგიძლიათ შექმნათ Cloud ინფრასტრუქტურა ამისთვის? მას შემდეგ, რაც მე ვფიქრობ, რომ ჩემი მეორე იდეა, მე დაიწყო შეამოწმოთ მათი საიტზე. შესაძლებელია შეამოწმოთ, თუ პროდუქტი ხელმისაწვდომია და დაამატოთ ეს კურსი ონლაინ ordering, რაც იმას ნიშნავს, რომ არსებობს რამდენიმე ქსელის კურსი, რომ ჩვენ შეგვიძლია აღინიშნოს, თუ Dubai Chocolate Pistachio Shake ხელმისაწვდომია. Implementation განახლება იმისათვის, რომ მიიღოთ ინფორმაცია ხელმისაწვდომობის შესახებ, ჩვენ გვჭირდება რამდენიმე მონაცემთა ნაბიჯები. არსებობს თუ არა გზა, რომ გაიგოთ სავაჭრო ინფორმაცია? როგორ უნდა განსხვავდეს, თუ მაღაზია აქვს shake ან არა? სავაჭრო მონაცემების მიღება, როდესაც ჩვენ დააწკაპუნეთ შეამოწმეთ ელემენტს და ვხედავ ქსელის კითხვებს, როდესაც ჩვენ აირჩიეთ Washington, ჩვენ ვხედავ რამდენიმე საინტერესო კითხვებს. WASHINGTON- ში 7 ადგილი აქვს, და ჩვენ უნდა იცოდეთ, თუ ერთი მათ შორის აქვს შერჩევა. თუ ვხედავთ რეგიონული ინფორმაციის პასუხი, ჩვენ შეგვიძლია მიიღოთ ყველა სახელმწიფო ინფორმაცია. curl 'https://ssma24.com/production-location/regions?isAlpha=true' \ -H 'accept: */*' \ -H 'accept-language: en-US,en;q=0.9' \ -H 'authorization: Basic removedSecretCodeHere==' \ -H 'cache-control: no-cache' \ -H 'origin: https://shakeshack.com' \ -H 'platform-os: macos' \ -H 'platform-version: 1.71.20' \ -H 'pragma: no-cache' \ -H 'priority: u=1, i' \ -H 'referer: https://shakeshack.com/' \ -H 'sec-ch-ua: "Google Chrome";v="131", "Chromium";v="131", "Not_A Brand";v="24"' \ -H 'sec-ch-ua-mobile: ?0' \ -H 'sec-ch-ua-platform: "macOS"' \ -H 'sec-fetch-dest: empty' \ -H 'sec-fetch-mode: cors' \ -H 'sec-fetch-site: cross-site' \ -H 'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36' \ -H 'x-requested-with: XMLHttpRequest' შესაბამისად, WA ID არის a3d65b58-ee3c-42af-adb9-9e39e09503c3, და ჩვენ ვხედავთ მაღაზია ინფორმაცია, თუ ჩვენ გადაცემთ regionId API. curl 'https://ssma24.com/production-location/locations?regionId=a3d65b58-ee3c-42af-adb9-9e39e09503c3&channel=WEB&includePrivate=false' \ -H 'accept: */*' \ -H 'accept-language: en-US,en;q=0.9' \ -H 'authorization: Basic removedSecretCodeHere' \ -H 'cache-control: no-cache' \ -H 'origin: https://shakeshack.com' \ -H 'platform-os: macos' \ -H 'platform-version: 1.71.20' \ -H 'pragma: no-cache' \ -H 'priority: u=1, i' \ -H 'referer: https://shakeshack.com/' \ -H 'sec-ch-ua: "Google Chrome";v="131", "Chromium";v="131", "Not_A Brand";v="24"' \ -H 'sec-ch-ua-mobile: ?0' \ -H 'sec-ch-ua-platform: "macOS"' \ -H 'sec-fetch-dest: empty' \ -H 'sec-fetch-mode: cors' \ -H 'sec-fetch-site: cross-site' \ -H 'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36' \ -H 'x-requested-with: XMLHttpRequest' ეს ინფორმაცია ჯერ კიდევ არ არის საკმარისი, სანამ ჩვენ ვიცით, როგორ მიიღოთ მაღაზია გვერდზე და აღინიშნა ხელმისაწვდომობა. თუ მაღაზია აქვს shake, იგი აჩვენებს Dubai shake სექციაში shake. და შემდეგ კვლევა curl calls, მე ვხედავთ call for menu option. curl 'https://ssma24.com/v1.0/locations/82099/menus?includeOptionalCategories=utensils&platform=web' \ -H 'accept: */*' \ -H 'accept-language: en-US,en;q=0.9' \ -H 'authorization: Basic removedSecretCodeHere==' \ -H 'cache-control: no-cache' \ -H 'channel: WEB' \ -H 'origin: https://shakeshack.com' \ -H 'platform-os: macos' \ -H 'platform-version: 1.71.20' \ -H 'pragma: no-cache' \ -H 'priority: u=1, i' \ -H 'referer: https://shakeshack.com/' \ -H 'sec-ch-ua: "Google Chrome";v="131", "Chromium";v="131", "Not_A Brand";v="24"' \ -H 'sec-ch-ua-mobile: ?0' \ -H 'sec-ch-ua-platform: "macOS"' \ -H 'sec-fetch-dest: empty' \ -H 'sec-fetch-mode: cors' \ -H 'sec-fetch-site: cross-site' \ -H 'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36' \ -H 'x-requested-with: XMLHttpRequest' თუ shake ხელმისაწვდომია, მაშინ ჩვენ ვხედავთ იგი პროდუქტის ნაწილში. თუ მაღაზია არ აქვს, მაშინ ჩვენ არ ვხედავთ ეს პასუხში. ასე რომ, ყველა ჩვენ უნდა გავაკეთოთ არის მიიღოთ ყველა მაღაზია ინფორმაცია და შეამოწმეთ, რა მაღაზია აქვს shake. თუ თქვენ იხილეთ მაღაზია კითხვები, მისი oloId დაკავშირებულია კითხვები დაკავშირებული მაღაზია. ეს შეიძლება მოპოვდეს მაღაზია ინფორმაცია წინა კითხვები, რომელიც მე შეუძლია მიიღოს ყველა მაღაზია IDs. ზოგიერთი ძირითადი shell scripting, მე შეგვიძლია შექმნათ ამ curl script, რომელიც ვთქვა, რომელიც მაღაზია იქნება shake. for store in 203514 236001 265657 82099 62274 96570 203515; do echo $store curl "https://ssma24.com/v1.0/locations/$store/menus?includeOptionalCategories=utensils&platform=web" \ -H 'accept: */*' \ -H 'accept-language: en-US,en;q=0.9' \ -H 'authorization: Basic removedSecretCodeHere==' \ -H 'cache-control: no-cache' \ -H 'channel: WEB' \ -H 'origin: https://shakeshack.com' \ -H 'platform-os: macos' \ -H 'platform-version: 1.71.20' \ -H 'pragma: no-cache' \ -H 'priority: u=1, i' \ -H 'referer: https://shakeshack.com/' \ -H 'sec-ch-ua: "Google Chrome";v="131", "Chromium";v="131", "Not_A Brand";v="24"' \ -H 'sec-ch-ua-mobile: ?0' \ -H 'sec-ch-ua-platform: "macOS"' \ -H 'sec-fetch-dest: empty' \ -H 'sec-fetch-mode: cors' \ -H 'sec-fetch-site: cross-site' \ -H 'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36' \ -H 'x-requested-with: XMLHttpRequest' | jq| grep '"name": "Dubai Chocolate Pistachio Shake",' done სადაც თითოეული სავაჭრო არის storeId, და მე გამოიყენე jq ბიბლიოთეკა, რათა დააყენოთ პასუხი JSON გამომავალი, და გააკეთა ამ სახელი, სავაჭროები, რომ აქვს shake გაძლევთ hit. Sample პასუხი ამ საფუძველზე, ჩვენ ვიცით, რომ მაღაზია 82099, 62274, და 96570 აქვს shakes, და მე მიიღო მაღაზია მისამართი წინა კითხვები და მიიღო shakes. :) Conclusion კონტაქტი ამ დოკუმენტში, ჩვენ განიხილეთ ქსელის კითხვებს, რათა იპოვოთ ინფორმაცია, რომელიც ჩვენ გჭირდებათ, და ასევე ვფიქრობთ, თუ როგორ უნდა მიიღოთ მაღაზია ინფორმაცია მათი ქსელის კითხვებს. ეს თქმა უნდა, ჩვენ ასევე შეგვიძლია ავტომატიზაცია ეს მეშვეობით Selenium (არ არის კომპიუტერული მძიმე), ან ჩვენ შეგვიძლია გამოიყენოთ AI- ს, რათა შეინახოთ ვებ-გვერდს და ვფიქრობთ, თუ როგორ უნდა მიიღოთ ამ ინფრასტრუქტურა ჩვენთვის მზად. ეს იქნება გაუმჯობესება, რომელიც გააუმჯობესებს ზოგიერთი QA- ს დაკავშირებული სამუშაოები ინდუსტრიაში (მე არ ვართ ამ ადგილას, მაგრამ ვართ ამ ადგილას ძალიან სწრაფად). ძირითადი პრაქტიკა, რომელიც ჩვენ ვხედავთ დღეს, იყო manual. In my next articles, I will show how we can take this simple idea and build a cloud infrastructure around it. I will be writing about building: Cloud-based serverless call, რათა მიიღოთ ინფორმაცია web. Cloud-based Trigger მომსახურება, რომელიც დაიწყება სერვერზე გარეშე კავშირი. შენახვის სისტემა ამ მონაცემების caching - სადაც ჩვენ შეგვიძლია შენახვა პასუხები? შეტყობინების სისტემა მობილური განაცხადის მეშვეობით ან სხვადასხვა სხვა გზა. თუ ჩვენ მიიღებთ საკმარისი მონაცემთა პერსონალი, მე გთავაზობთ, თუ როგორ უნდა შექმნათ ML მოდელი, გამოყენებით შუა მონაცემთა პერსონალი. ეს არის სასწავლო მიზნით; მე და ჩემი პარტნიორი (SGG) ამ რეალური მსოფლიოს მაგალითად აშენდა Cloud ინფრასტრუქტურა, და კოდი და სხვა არქიტექტები არ გამოქვეყნდა, რათა უზრუნველყოს Shake Shack საიტები არ არის overloaded.