استفسار Nodejs: عن Handling multi-restful APIs

استفسار عن
Handling multi-restful APIs

2 Likes

هل تنفع بهذا الشكل؟

await fetch(`${process.env.APEX||process.env.CSGO||process.env.DIVISION||process.env.OVERWATCH||process.env.SPLITGATE}/profile/${platform}/${gamertag}`, {
      headers
    })
1 Like

قبل كل شئ احتاج افهم شئ:

هل أن عايز تجيب كل البيانات من كل الـ APIs وعرضها بنفس الصفحة؟

أم ان العضو بيدخل على Route محدد لمنصة محددة ويتم جلب البيانات الخاصة بها فقط؟

مثلاً في الـ Route انت محدد

/:platform/:gamertag

جيب لي مثل لقيم الـ Parameters التي في هذا الـ route

مثلاُ:

/apex/something
2 Likes

هي نفس الفكرة لموقع https://tracker.gg/

تدخل وتختار اللعبة، ثم تكتب الuserID الخاص بك، يطلعلك الscores
عندهم API رائع

بالضبط

2 Likes

بإمكانك تحط الـ إسم اللعبة في الـ route وتستخدم هذا الـ params بداخل الـ api url

مثلاً:

/:game/:paltform/:gamertag
fetch(`${process.env[game]/profile/${platform}/${gamertag}`)

في مثل هذه الحالة سيتم عمل fetch للـ api المطلوب حسب إسم اللعبة المحدد في الـ URL

2 Likes

في ال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
      })