
هندسة عكسية لـ Rewe API في Go
عميل غير رسمي لواجهة REWE API بلغتي Go وPython. يطبّق نقاط النهاية المتاحة للعموم (بدون مصادقة) التي يستخدمها تطبيق REWE للاستعلام عن الخصومات الحالية (Angebote) والمنتجات والأسواق والاستدعاءات.
إصدار APK المدعوم حالياً: 5.18.1 (اعتباراً من 29.09.26)
[!CAUTION] الشهادات المطلوبة للتواصل مع rewe api غير مضمنة في هذا المستودع. تحتاج إلى استخراجها من APK. يمكن العثور على التوثيق وسكربت استخراج لنظام ويندوز في دليل docs.
انظر أيضاً rewerse-ui.
استخرج الشهادات من rewe apk؛ راجع docs للحصول على التعليمات
استخدم المكتبة:
أو ثبّت CLI:
go install github.com/ByteSizedMarius/rewerse-engineering/cmd@latestgo build -o rewerse ./cmdتحقق: rewerse --help
مثال: اجلب الخصومات الحالية لسوق:
$ rewerse discounts -market 840174
Top-Angebote in deinem Markt
Haribo Goldbären oder Color-Rado, 0.77€
Coca-Cola, Fanta oder Sprite, 0.99€
Obst & Gemüse
Heidelbeeren, 1.49€
Rispentomaten, 0.99€
...
في مارس 2024، بدأت Rewe
باستخدام Cloudflare MTLS لتأمين نقاط نهاية api الخاصة بها، مما
أدى إلى تعطيل الحلول الموجودة التي كانت تسمح، على سبيل المثال، بجلب الخصومات لسوق Rewe محدد.
كان مستخدم Github @torbenpfohl مهووساً مثابراً بما يكفي ليكتشف هذا، ويجد الشهادة وكلمة مرورها. يعتمد هذا المستودع على
عمله ويهدف إلى توثيق الإجراءات المطلوبة وتطبيق بعض نقاط النهاية.
هذا المشروع غير تابع لـ REWE-ZENTRALFINANZ eG ولا معتمد منه ولا مدعوم منه. "REWE" علامة تجارية مسجلة لمالكها المعني.
هذا عميل غير رسمي مبني على حركة مرور الشبكة المرصودة علناً من تطبيق REWE للهواتف المحمولة. يُقدَّم لأغراض تعليمية وبحثية. واجهة API الأساسية غير موثقة وقد تتغير أو تتعطل في أي وقت دون إشعار.
استخدام هذا البرنامج على مسؤوليتك الخاصة. المستخدمون مسؤولون عن ضمان توافق استخدامهم مع شروط الخدمة المعمول بها.
rewerse على PyPI – راجع python/readme للحصول على التفاصيل والشيفرة المصدرية.[!NOTE] يرجى ملاحظة أنه نظراً لأن هذا ملف go ثنائي غير موقّع يقوم ببعض التشفير/فك التشفير للشهادات ويرسل طلبات ويب إلى rewe api، فمن المحتمل أن يتم الإبلاغ عنه من قبل برنامج مكافحة الفيروسات لديك. لا توجد تبعيات، لذا يمكنك بسهولة ترجمته بنفسك – وهو أمر يُوصى به دائماً من منظور أمني.
لم يعد التطبيق يحتوي على نقطة نهاية للإكمال التلقائي ويستخدم فقط البحث العادي عن المنتجات، لذا اختفت اقتراحات المنتجات.
Usage: ./rewerse.exe [flags] <command> [subcommand] [flags]
Flags:
-cert <path> Certificate file (default: certificate.pem)
-key <path> Key file (default: private.key)
-json Output as JSON
Commands:
markets Search and get market details
products Search, browse, and get product info
discounts Get market discounts
categories Get product categories
recipes Search recipes, get details and popular terms
recalls Get product recalls
services Get service portfolio by zip
Examples:
./rewerse.exe markets search -query Köln
./rewerse.exe products search -market 831002 -query Milch
./rewerse.exe products category -market 831002 -slug obst-gemuese
./rewerse.exe discounts -market 840174
./rewerse.exe categories -market 831002
./rewerse.exe services -zip 50667
./rewerse.exe recipes search -term Lachs -difficulties 1
./rewerse.exe recipes details -id blt4aaa7361ba69f8c8
Run './rewerse.exe <command>' for subcommand help.
توجد الاختبارات في pkg/*_test.go. هناك نوعان:
go test ./pkg/ -run Unmarshalgo test ./pkg/إذا كنت تساهم بتغيير في بنية، فيرجى التفكير في إضافة أو تحديث اختبار فك الترميز. استخدم استجابة API حقيقية إذا تمكنت من التقاط واحدة، وإلا فإن حمولة JSON اصطناعية تعكس سلوك API الفعلي تكون كافية.
لا تتردد في فتح قضايا github للاقتراحات والأسئلة والأخطاء. نرحب بـ PRs. البريد الإلكتروني: rewe at byte dot rest.