API Restful for Pokémon - PokeAPI.co
Dukungan Beta GraphQL diluncurkan! Lihat paragraf GraphQL untuk info lebih lanjut.
Unduh kode sumber ini ke direktori yang berfungsi, pastikan untuk menggunakan bendera --recurse-submodules untuk mengkloning juga submodul kami.
Pasang persyaratan menggunakan PIP:
make install
# This will install all the required packages and libraries for using PokeAPISiapkan lingkungan pengembangan lokal menggunakan perintah berikut:
make setup Jalankan server di port 8000 menggunakan perintah berikut:
make serveUntuk membangun atau membangun kembali database dengan menerapkan pembaruan file CSV apa pun, jalankan
make build-dbKunjungi LocalHost: 8000/API/V2/untuk melihat API yang sedang berjalan!
Setiap kali skrip build-db dijalankan, ia akan mengulangi setiap tabel dalam database, menghapusnya, dan menulis ulang setiap baris menggunakan data yang ditemukan dalam data/V2/CSV.
Jika Anda perlu menghapus database, gunakan perintah ini:
make wipe-sqlite-dbJika skema basis data telah berubah, hasilkan migrasi yang luar biasa dan terapkan
make make-migrations
make migrate Jalankan make help untuk melihat semua tugas.
Ada juga pengaturan multi-kontainer, yang dikelola oleh Docker Compose V2. Pengaturan ini memungkinkan Anda untuk menggunakan lingkungan seperti produksi, dengan wadah terpisah untuk setiap layanan, dan disarankan jika Anda perlu memutar Pokéapi.
Mulailah semuanya dengan
make docker-setup Jika Anda tidak memiliki make di mesin Anda, Anda dapat menggunakan perintah berikut
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 ' Jelajahi LocalHost/API/V2/atau LocalHost/API/V2/Pokemon/Bulbasaur/On Port 80 .
Untuk membangun kembali database dan menerapkan pembaruan file CSV apa pun, jalankan
make docker-build-dbJika skema basis data telah berubah, hasilkan migrasi dan terapkan
make docker-make-migrations
make docker-migrateKetika Anda memulai Pokéapi dengan pengaturan Docker Compose di atas, server mesin Hasura juga dimulai. Dimungkinkan untuk melacak semua tabel pokeapi dan kunci asing secara sederhana
# 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-applySetelah selesai menelusuri http: // localhost: 8080 dan Anda akan menemukan konsol admin. Titik akhir GraphQL akan di -host di http: // localhost: 8080/v1/graphql.
Konsol graphiql publik gratis dapat dijelajahi di alamat https://beta.pokeapi.co/graphql/console/. Titik akhir graphql relatif dapat diakses di https://beta.pokeapi.co/graphql/v1beta
Satu set contoh disediakan dalam direktori /graphql /contoh repositori ini.
File kustomize disediakan di folder https://github.com/pokeapi/pokeapi/tree/master/resources/k8s/kustomize/base/. Buat dan ubah rahasia Anda:
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 Konfigurasikan kubectl untuk menunjuk ke sebuah cluster dan kemudian jalankan perintah berikut untuk memulai layanan 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 Pengaturan K8 ini menciptakan semua sumber daya K8S di dalam namespace pokeapi , menjalankan kubectl delete namespace pokeapi untuk menghapusnya. Ini juga menciptakan layanan tipe LoadBalancer yang terpapar pada port 80 dan 443 . Data tetap ada pada 12Gi volume ReadWriteOnce .
| Pembungkus resmi | Gudang | Fitur |
|---|---|---|
| Sisi server simpul | PokeAPI/POKEDEX-PROMISE-V2 | Caching otomatis |
| Sisi klien browser | PokeAPI/POKEAPI-JS-Wrapper | Caching otomatis , caching gambar |
| Java/Kotlin | PokeAPI/POKEKOTLIN | |
| Python 2/3 | Pokeapi/Pokepy | Caching otomatis |
| Python 3 | Pokeapi/Pokebase | Caching otomatis , caching gambar |
| Pembungkus | Gudang | Fitur |
|---|---|---|
| .NET Standard | mtrdp642/pokeapinet | Caching otomatis |
| Anak panah | Prathanbomb/Pokedart | |
| Pergi | mtslzr/pokeAPi-go | Caching otomatis |
| Php | lmerotta/phpokeapi | Caching Otomatis, Pemuatan Malas |
| PowerShell | Celerium/PokeAPi-Powershellwrapper | |
| Python | Beastmatser/aiopokeapi | Caching otomatis, asinkron |
| Rubi | RDAVID1099/POKE-API-V2 | |
| Karat | lunik1/pokerust | Caching otomatis |
| Scala | Juliano/PokeAPi-Scala | Caching otomatis |
| Boot musim semi | dlfigueira/Spring-PokeAPI | Caching otomatis |
| Cepat | Kinkofer/Pokemonapi | |
| Sisi server TypeScript/sisi klien | Gabb-c/pokenode-ts | Caching otomatis |
Bantuan agar Pokéapi tetap berjalan! Jika Anda menggunakan Pokéapi sebagai sumber pengajaran atau untuk suatu proyek, pertimbangkan untuk mengirimi kami sumbangan untuk membantu menjaga layanan tetap. Kami mendapatkan 1+ miliar permintaan sebulan!
Terima kasih untuk semua pendukung kami! Menjadi pendukung
PERINGATAN Saat ini tidak ada pengelola yang memiliki cukup waktu luang untuk mendukung masyarakat di Slack. Slack kami berada dalam status yang tidak terawat.
Punya pertanyaan atau hanya ingin membahas ide dan peningkatan baru? Pukul kami di Slack. Pertimbangkan untuk berbicara dengan kami di sini sebelum membuat masalah baru. Dengan cara ini kita dapat menyimpan masalah di sini sedikit lebih terorganisir dan bermanfaat dalam jangka panjang. Menjadi sangat baik satu sama lain?
Daftar dengan mudah!
Setelah Anda mendaftar, kunjungi Pokéapi di Slack
Proyek ini ada berkat semua orang yang berkontribusi
Semua kontribusi dipersilakan: perbaikan bug, kontribusi data, dan rekomendasi.
Silakan lihat masalah di GitHub sebelum Anda mengirimkan permintaan tarik atau mengangkat masalah, orang lain mungkin telah mengalahkan Anda.
Untuk berkontribusi pada repositori ini:
Pukaskan proyek ke profil gitub Anda sendiri
Unduh Proyek Forked Menggunakan Git Clone:
git clone --recurse-submodules [email protected]: < YOUR_USERNAME > /pokeapi.gitBuat cabang baru dengan nama deskriptif:
git checkout -b my_new_branchTulis beberapa kode, perbaiki sesuatu, dan tambahkan tes untuk membuktikan bahwa itu berhasil. Tidak ada permintaan tarik yang akan diterima tanpa tes lulus, atau tanpa tes baru jika fitur baru ditambahkan.
Melakukan kode Anda dan dorong ke GitHub
Buka permintaan tarik baru dan jelaskan perubahan yang telah Anda buat.
Kami akan menerima perubahan Anda setelah ulasan.
Sederhana!
Pada Oktober 2018, API V1 telah dihapus dari Pokéapi. Untuk informasi lebih lanjut, lihat pokeAPi.co/docs/v1.html.