API ที่พักผ่อนสำหรับโปเกมอน - pokeapi.co
การสนับสนุน Beta GraphQL กำลังเปิดตัว! ตรวจสอบวรรค GraphQL สำหรับข้อมูลเพิ่มเติม
ดาวน์โหลดซอร์สโค้ดนี้ลงในไดเรกทอรีการทำงานให้แน่ใจว่าได้ใช้ธง --recurse-submodules เพื่อโคลนนิ่งยัง 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/เพื่อดู API ที่กำลังดำเนินอยู่!
ทุกครั้งที่สคริปต์ build-db ทำงานจะวนซ้ำแต่ละตารางในฐานข้อมูลเช็ดและเขียนแต่ละแถวโดยใช้ข้อมูลที่พบใน Data/V2/CSV
หากคุณต้องการเช็ดฐานข้อมูลให้ใช้คำสั่งนี้:
make wipe-sqlite-dbหากสคีมาฐานข้อมูลมีการเปลี่ยนแปลงให้สร้างการย้ายถิ่นฐานที่โดดเด่นและนำไปใช้
make make-migrations
make migrate เรียก make help ดูงานทั้งหมด
นอกจากนี้ยังมีการตั้งค่าแบบหลายคอนท์ชั่นซึ่งจัดการโดย Docker Piscose V2 การตั้งค่านี้ช่วยให้คุณสามารถปรับใช้สภาพแวดล้อมที่มีลักษณะคล้ายการผลิตโดยมีคอนเทนเนอร์แยกต่างหากสำหรับแต่ละบริการและแนะนำหากคุณต้องการหมุนโปเกมอน
เริ่มต้นทุกอย่างโดย
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/บนพอร์ต 80
หากต้องการสร้างฐานข้อมูลใหม่และใช้การอัปเดตไฟล์ CSV ใด ๆ ให้เรียกใช้
make docker-build-dbหากสคีมาฐานข้อมูลมีการเปลี่ยนแปลงให้สร้างการอพยพและใช้เหล่านั้น
make docker-make-migrations
make docker-migrateเมื่อคุณเริ่มPokéapiด้วยการตั้งค่าการเขียน Docker ด้านบนเซิร์ฟเวอร์ Hasura Engine ก็เริ่มต้นเช่นกัน เป็นไปได้ที่จะติดตามตาราง 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
คอนโซลกราฟิกสาธารณะฟรีสามารถดูได้ที่ที่อยู่ 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 ทั้งหมดภายใน Namespace pokeapi เรียกใช้ kubectl delete namespace pokeapi เพื่อลบ นอกจากนี้ยังสร้าง บริการ ประเภท LoadBalancer ซึ่งเปิดอยู่บนพอร์ต 80 และ 443 ข้อมูลยังคงอยู่ในปริมาณ ReadWriteOnce 12Gi
| เสื้อคลุมอย่างเป็นทางการ | ที่เก็บ | คุณสมบัติ |
|---|---|---|
| ฝั่งเซิร์ฟเวอร์ | Pokeapi/Pokedex-Promise-V2 | การแคชอัตโนมัติ |
| เบราว์เซอร์ฝั่งไคลเอ็นต์ | pokeapi/pokeapi-js-wrapper | การแคชอัตโนมัติ , การแคชรูปภาพ |
| Java/Kotlin | pokeapi/pokekotlin | |
| Python 2/3 | Pokeapi/Pokepy | การแคชอัตโนมัติ |
| Python 3 | Pokeapi/Pokebase | การแคชอัตโนมัติ , การแคชรูปภาพ |
| เสื้อคลุม | ที่เก็บ | คุณสมบัติ |
|---|---|---|
| . NET มาตรฐาน | MTRDP642/POKEAPINET | การแคชอัตโนมัติ |
| โผ | Prathanbomb/PokeDart | |
| ไป | mtslzr/pokeapi-go | การแคชอัตโนมัติ |
| PHP | lmerotta/phpokeapi | แคชอัตโนมัติขี้เกียจ |
| PowerShell | celerium/pokeapi-powershellwrapper | |
| งูหลาม | Beastmatser/aiopokeapi | การแคชอัตโนมัติแบบอะซิงโครนัส |
| ทับทิม | RDAVID1099/POKE-API-V2 | |
| สนิม | lunik1/pokerust | การแคชอัตโนมัติ |
| สกาล่า | Juliano/Pokeapi-Scala | การแคชอัตโนมัติ |
| รองเท้าสปริง | Dlfigueira/Spring-Pokeapi | การแคชอัตโนมัติ |
| ฉับพลัน | kinkofer/pokemonapi | |
| TypeScript Server Side/Client Side | gabb-c/pokenode-ts | การแคชอัตโนมัติ |
ช่วยให้Pokéapiทำงานได้! หากคุณใช้Pokéapiเป็นทรัพยากรการสอนหรือสำหรับโครงการให้พิจารณาส่งเงินบริจาคให้เราเพื่อช่วยให้บริการ เราได้รับ 1 พันล้านคำขอต่อเดือน!
ขอบคุณผู้สนับสนุนของเราทุกคน! เป็นผู้สนับสนุน
คำเตือน ในปัจจุบันไม่มีผู้ดูแลมีเวลาว่างเพียงพอที่จะสนับสนุนชุมชนใน Slack ความหย่อนของเราอยู่ในสถานะที่ไม่ได้รับการดูแล
มีคำถามหรือเพียงแค่ต้องการหารือเกี่ยวกับแนวคิดและการปรับปรุงใหม่ ๆ ? ตีเราบน Slack ลองพูดคุยกับเราที่นี่ก่อนที่จะสร้างปัญหาใหม่ วิธีนี้เราสามารถรักษาปัญหาที่นี่ได้มากขึ้นและเป็นประโยชน์ในระยะยาว เป็นคนที่ยอดเยี่ยมซึ่งกันและกัน?
ลงทะเบียนได้อย่างง่ายดาย!
เมื่อคุณลงทะเบียนเยี่ยมชม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 API ถูกลบออกจากPokéapi สำหรับข้อมูลเพิ่มเติมดู pokeapi.co/docs/v1.html