
هندسة عكسية لـ Rewe API في Go
يهدف هذا المستودع إلى تنفيذ جميع نقاط النهاية (غير الموثقة) المتاحة للجمهور المستخدمة من قبل تطبيق ريف (Rewe) للاستعلام عن الخصومات الحالية والمنتجات والوصفات والاستدعاءات.
إصدار APK المدعوم حاليًا: 5.15.2 (اعتبارًا من 12.07.26)
[!CAUTION] الشهادات المطلوبة للتواصل مع واجهة برمجة تطبيقات ريف غير مضمنة في هذا المستودع. تحتاج إلى استخراجها من ملف APK. يمكن العثور على التوثيق وبرنامج نصي للاستخراج لنظام ويندوز في دليل docs.
انظر أيضًا rewerse-ui.
استخراج الشهادات من ملف 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، بدأت ريف في استخدام Cloudflare MTLS لتأمين نقاط النهاية الخاصة بواجهة برمجة التطبيقات، مما أدى إلى تعطيل الحلول الحالية التي كانت تسمح، على سبيل المثال، بجلب الخصومات لسوق ريف معين. كان مستخدم GitHub @torbenpfohl مهووسًا مثابرًا بما يكفي لمعرفة ذلك، والعثور على الشهادة وكلمة مرورها. هذا المستودع مبني على عمله ويهدف إلى توثيق الإجراءات المطلوبة وتنفيذ بعض نقاط النهاية.
هذا المشروع ليس تابعًا لشركة REWE-ZENTRALFINANZ eG أو معتمدًا منها أو مدعومًا منها. "REWE" هي علامة تجارية مسجلة لمالكها.
هذا عميل غير رسمي يعتمد على حركة مرور الشبكة القابلة للملاحظة علنًا من تطبيق ريف المحمول. يتم توفيره للأغراض التعليمية والبحثية. واجهة برمجة التطبيقات الأساسية غير موثقة وقد تتغير أو تتعطل في أي وقت دون إشعار مسبق.
استخدام هذا البرنامج على مسؤوليتك الخاصة. يتحمل المستخدمون مسؤولية ضمان امتثال استخدامهم لشروط الخدمة المعمول بها.
rewerse على PyPI – راجع python/readme للتفاصيل وكود المصدر.[!NOTE] يرجى ملاحظة أنه نظرًا لأن هذا هو ملف ثنائي Go غير موقع يقوم ببعض التشفير/فك تشفير الشهادات وإرسال طلبات ويب إلى واجهة برمجة تطبيقات ريف، فمن المحتمل أن يتم وضع علامة عليه من قبل برنامج مكافحة الفيروسات الخاص بك. لا توجد تبعيات، لذا يمكنك بسهولة تجميعه بنفسك – وهو أمر موصى به دائمًا من منظور أمني.
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
recipes Search and browse recipes
discounts Get market discounts
categories Get product categories
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 recipes search -term Pasta
./rewerse.exe discounts -market 840174
./rewerse.exe categories -market 831002
./rewerse.exe services -zip 50667
Run './rewerse.exe <command>' for subcommand help.
توجد الاختبارات في pkg/*_test.go. هناك نوعان:
go test ./pkg/ -run Unmarshalgo test ./pkg/إذا كنت تساهم في تغيير هيكل، يرجى التفكير في إضافة أو تحديث اختبار Unmarshal. استخدم استجابة API حقيقية إذا كان بإمكانك التقاط واحدة، وإلا فإن حمولة JSON اصطناعية تعكس سلوك API الفعلي كافية.
لا تتردد في فتح مشكلات على GitHub للاقتراحات والأسئلة والأخطاء. طلبات السحب مرحب بها. البريد الإلكتروني: rewe at byte dot rest.