واجهة برمجة تطبيقات مريحة لـ Pokémon - Pokeapi.co
Beta GraphQL دعم يتم طرحه! تحقق من فقرة GraphQL لمزيد من المعلومات.
قم بتنزيل رمز المصدر هذا في دليل العمل ، تأكد من استخدام العلم --recurse-submodules لاستنساخ أيضًا عروضنا الفرعية.
تثبيت المتطلبات باستخدام PIP:
make install
# This will install all the required packages and libraries for using PokeAPIقم بإعداد بيئة التطوير المحلية باستخدام الأمر التالي:
make setup قم بتشغيل الخادم على المنفذ 8000 باستخدام الأمر التالي:
make serveلبناء أو إعادة بناء قاعدة البيانات عن طريق تطبيق أي تحديث ملفات CSV ، قم بتشغيل
make build-dbزيارة LocalHost: 8000/API/V2/لرؤية واجهة برمجة تطبيقات التشغيل!
في كل مرة يتم تشغيل البرنامج النصي build-db ، سيتم تكراره عبر كل جدول في قاعدة البيانات ، ومسحه ، وإعادة كتابة كل صف باستخدام البيانات الموجودة في البيانات/V2/CSV.
إذا كنت بحاجة إلى مسح قاعدة البيانات ، فاستخدم هذا الأمر:
make wipe-sqlite-dbإذا تغير مخطط قاعدة البيانات ، فقم بإنشاء أي ترحيل معلقة وتطبيقها
make make-migrations
make migrate تشغيل make help في رؤية جميع المهام.
هناك أيضًا إعداد متعدد الحواف ، يديره Docker Compose V2. يتيح لك هذا الإعداد نشر بيئة تشبه الإنتاج ، مع حاويات منفصلة لكل خدمة ، ويوصى بها إذا كنت بحاجة إلى تدوير Pokéapi ببساطة.
ابدأ كل شيء
make docker-setup إذا لم يكن لديك make على جهازك ، يمكنك استخدام الأوامر التالية
docker compose up -d
docker compose exec -T app python manage.py migrate --settings=config.docker-compose
docker compose exec -T app sh -c ' echo "from data.v2.build import build_all; build_all()" | python manage.py shell --settings=config.docker-compose ' تصفح LocalHost/API/V2/أو LocalHost/API/V2/Pokemon/Bulbasaur/On Port 80 .
لإعادة بناء قاعدة البيانات وتطبيق أي تحديثات ملفات CSV ، قم بتشغيلها
make docker-build-dbإذا تغير مخطط قاعدة البيانات ، فقم بتوليد الترحيل وتطبيقها
make docker-make-migrations
make docker-migrateعندما تبدأ Pokéapi مع إعداد Docker أعلاه ، يتم تشغيل خادم محرك Hasura أيضًا. من الممكن تتبع جميع طاولات Pokeapi والمفاتيح الأجنبية ببساطة
# hasura cli needs to be installed and available in your $PATH: https://hasura.io/docs/latest/graphql/core/hasura-cli/install-hasura-cli.html
# hasura cli's version has to greater than v2.0.8
make hasura-applyعند الانتهاء من تصفح http: // localhost: 8080 وستجد وحدة التحكم في المسؤول. سيتم استضافة نقطة نهاية GraphQL على http: // localhost: 8080/v1/graphql.
وحدة تحكم GraphIQL المجانية قابلة للتصفح على عنوان https://beta.pokeapi.co/graphql/console/. يمكن الوصول إلى نقطة نهاية GraphQL النسبية على https://beta.pokeapi.co/graphql/v1beta
يتم توفير مجموعة من الأمثلة في الدليل /GraphQL /أمثلة على هذا المستودع.
يتم توفير ملفات kustomize في المجلد https://github.com/pokeapi/pokeapi/tree/master/resources/k8s/kustomize/base/. قم بإنشاء وتغيير أسرارك:
cp Resources/k8s/kustomize/base/secrets/postgres.env.sample Resources/k8s/kustomize/base/secrets/postgres.env
cp Resources/k8s/kustomize/base/secrets/graphql.env.sample Resources/k8s/kustomize/base/secrets/graphql.env
cp Resources/k8s/kustomize/base/config/pokeapi.env.sample Resources/k8s/kustomize/base/config/pokeapi.env
# Edit the newly created files قم بتكوين kubectl للإشارة إلى مجموعة ثم قم بتشغيل الأوامر التالية لبدء خدمة Pokéapi.
kubectl apply -k Resources/k8s/kustomize/base/
kubectl config set-context --current --namespace pokeapi # (Optional) Set pokeapi ns as the working ns
# Wait for the cluster to spin up
kubectl exec --namespace pokeapi deployment/pokeapi -- python manage.py migrate --settings=config.docker-compose # Migrate the DB
kubectl exec --namespace pokeapi deployment/pokeapi -- sh -c ' echo "from data.v2.build import build_all; build_all()" | python manage.py shell --settings=config.docker-compose ' # Build the db
kubectl wait --namespace pokeapi --timeout=120s --for=condition=complete job/load-graphql # Wait for Graphql configuration job to finish هذا الإعداد K8S ينشئ جميع موارد K8S داخل pokeapi مساحة الاسم ، Run kubectl delete namespace pokeapi لحذفها. كما أنه ينشئ خدمة من نوع LoadBalancer الذي يتم عرضه في المنفذ 80 و 443 . تم استمرار البيانات على 12Gi من مجلدات ReadWriteOnce .
| غلاف رسمي | مستودع | سمات |
|---|---|---|
| عقدة الخادم | pokeapi/pokedex-promise-v2 | التخزين المؤقت التلقائي |
| متصفح العميل من جانب العميل | pokeapi/pokeapi-js-wrapper | التخزين المؤقت التلقائي ، التخزين المؤقت للصور |
| جافا/كوتلين | Pokeapi/Pokekotlin | |
| بيثون 2/3 | Pokeapi/Pokepy | التخزين المؤقت التلقائي |
| بيثون 3 | Pokeapi/Pokebase | التخزين المؤقت التلقائي ، التخزين المؤقت للصور |
| إزار | مستودع | سمات |
|---|---|---|
| .NET Standard | MTRDP642/PokeApinet | التخزين المؤقت التلقائي |
| دارت | Prathanbomb/Pokedart | |
| يذهب | mtslzr/pokeapi-go | التخزين المؤقت التلقائي |
| PHP | Lerotta/phpokeapi | التخزين المؤقت التلقائي ، التحميل كسول |
| PowerShell | Celerium/Pokeapi-PowerShellwrapper | |
| بيثون | Beastmatser/Aiopokeapi | التخزين المؤقت التلقائي ، غير متزامن |
| روبي | rdavid1099/poke-api-v2 | |
| الصدأ | LUNIK1/POKERUST | التخزين المؤقت التلقائي |
| سكالا | جوليانو/بوكيبي ساكالا | التخزين المؤقت التلقائي |
| حذاء الربيع | dlfigueira/spring-pokeapi | التخزين المؤقت التلقائي |
| سريع | Kinkofer/Pokemonapi | |
| TypeScript Server-Side/من جانب العميل | GABB-C/POKENODE-TS | التخزين المؤقت التلقائي |
تساعد على الحفاظ على تشغيل Pokéapi! إذا كنت تستخدم Pokéapi كمورد تعليمي أو لمشروع ، ففكر في إرسال التبرع لنا للمساعدة في الحفاظ على الخدمة. نحصل على 1+ مليار طلب في الشهر!
شكرا لجميع مؤيدينا! كن مؤيدًا
تحذير حاليًا لا يوجد لدى المشرف وقت فراغ كاف لدعم المجتمع على الركود. لدينا الركود في مكانة غير محفوظة.
هل لديك سؤال أو تريد فقط مناقشة الأفكار والتحسينات الجديدة؟ ضربنا على الركود. فكر في التحدث معنا هنا قبل إنشاء مشكلة جديدة. وبهذه الطريقة يمكننا الحفاظ على المشكلات هنا أكثر تنظيماً ومفيدًا على المدى الطويل. كن ممتازا لبعضنا البعض؟
اشترك بسهولة!
بمجرد التسجيل ، قم بزيارة Pokéapi على Slack
هذا المشروع موجود بفضل جميع الأشخاص الذين يساهمون
جميع المساهمات موضع ترحيب: إصلاحات الأخطاء ، مساهمات البيانات ، والتوصيات.
يرجى الاطلاع على المشكلات الموجودة في Github قبل تقديم طلب سحب أو إثارة مشكلة ، ربما يكون شخص آخر قد ضربك.
للمساهمة في هذا المستودع:
تافهة المشروع إلى ملف github الخاص بك
قم بتنزيل مشروع Forked باستخدام Git Clone:
git clone --recurse-submodules [email protected]: < YOUR_USERNAME > /pokeapi.gitقم بإنشاء فرع جديد يحمل اسمًا وصفيًا:
git checkout -b my_new_branchاكتب بعض التعليمات البرمجية ، وإصلاح شيء ما ، وأضف اختبارًا لإثبات أنه يعمل. لن يتم قبول أي طلب سحب دون اجتياز اختبارات ، أو بدون اختبارات جديدة إذا تمت إضافة ميزات جديدة.
ارتكب الرمز الخاص بك وادفعه إلى Github
افتح طلب سحب جديد ووصف التغييرات التي أجريتها.
سنقبل التغييرات الخاصة بك بعد المراجعة.
بسيط!
اعتبارًا من أكتوبر 2018 ، تمت إزالة واجهة برمجة تطبيقات V1 من Pokéapi. لمزيد من المعلومات ، راجع pokeapi.co/docs/v1.html.