استفسار عن
Handling multi-restful APIs
هل تنفع بهذا الشكل؟
await fetch(`${process.env.APEX||process.env.CSGO||process.env.DIVISION||process.env.OVERWATCH||process.env.SPLITGATE}/profile/${platform}/${gamertag}`, {
headers
})
قبل كل شئ احتاج افهم شئ:
هل أن عايز تجيب كل البيانات من كل الـ APIs وعرضها بنفس الصفحة؟
أم ان العضو بيدخل على Route محدد لمنصة محددة ويتم جلب البيانات الخاصة بها فقط؟
مثلاً في الـ Route انت محدد
/:platform/:gamertag
جيب لي مثل لقيم الـ Parameters التي في هذا الـ route
مثلاُ:
/apex/something
هي نفس الفكرة لموقع https://tracker.gg/
تدخل وتختار اللعبة، ثم تكتب الuserID الخاص بك، يطلعلك الscores
عندهم API رائع
بالضبط
بإمكانك تحط الـ إسم اللعبة في الـ route وتستخدم هذا الـ params بداخل الـ api url
مثلاً:
/:game/:paltform/:gamertag
fetch(`${process.env[game]/profile/${platform}/${gamertag}`)
في مثل هذه الحالة سيتم عمل fetch للـ api المطلوب حسب إسم اللعبة المحدد في الـ URL
في الAPI لديهم، الـ game غير قابلة أن تكون قيمة متغيرة
مثلا CSGO:
GET https://public-api.tracker.gg/v2/csgo/standard/profile/{platform}/{platformUserIdentifier}
Division 2
GET https://public-api.tracker.gg/v2/division-2/standard/profile/{platform}/{platformUserIdentifier}
باقي الألعاب نقس الشكل
يبدو أنني سأقوم بعمل ملف مستقل لكل game route
أو أنني لم أتوصل لكيفية ترتيب الgames بشكل صح داخل ملف env
الroute يعمل عندي بالشكل التالي:
const response = await fetch(`${process.env.TRACKER_API_URL}/apex/standard/profile/${platform}/${gamertag}`, {
headers
})