Eine erholsame API für Pokémon - pokeapi.co
Die Beta -GraphQL -Unterstützung führt aus! Weitere Informationen finden Sie im GraphQL -Absatz.
Laden Sie diesen Quellcode in ein Arbeitsverzeichnis herunter. Verwenden Sie das Flag --recurse-submodules auch für unsere Submodules.
Installieren Sie die Anforderungen mit PIP:
make install
# This will install all the required packages and libraries for using PokeAPIRichten Sie die lokale Entwicklungsumgebung mit dem folgenden Befehl ein:
make setup Führen Sie den Server auf Port 8000 mit dem folgenden Befehl aus:
make serveUm die Datenbank zu erstellen oder neu zu erstellen, indem CSV -Dateiaktualisierungen angewendet werden, führen Sie aus
make build-dbBesuchen Sie localhost: 8000/api/v2/um die laufende API zu sehen!
Jedes Mal, wenn das build-db -Skript ausgeführt wird, iteriert es über jede Tabelle in der Datenbank, löscht sie und schreibe jede Zeile mit den Daten in Daten/V2/CSV um.
Wenn Sie jemals die Datenbank löschen müssen, verwenden Sie diesen Befehl:
make wipe-sqlite-dbWenn sich das Datenbankschema geändert hat, generieren Sie ausstehende Migrationen und wenden Sie sie an
make make-migrations
make migrate Run make help , alle Aufgaben zu sehen.
Es gibt auch ein Multi-Container-Setup, das von Docker Compose V2 verwaltet wird. Mit diesem Setup können Sie eine produktionsähnliche Umgebung mit separaten Containern für jeden Dienst bereitstellen, und wird empfohlen, wenn Sie Pokéapi einfach aufspinnen müssen.
Beginnen Sie alles durch
make docker-setup Wenn Sie nicht auf Ihrem Computer make können Sie die folgenden Befehle verwenden
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 ' Durchsuchen Sie localhost/api/v2/oder localhost/api/v2/pokemon/bulbasaur/auf Port 80 .
Um die Datenbank wieder aufzubauen und alle CSV -Dateiaktualisierungen anzuwenden, führen Sie aus
make docker-build-dbWenn sich das Datenbankschema geändert hat, generieren Sie die Migrationen und wenden Sie diese an
make docker-make-migrations
make docker-migrateWenn Sie Pokéapi mit dem oben genannten Docker Compose -Setup beginnen, wird auch ein Hasura -Engineserver gestartet. Es ist möglich, alle Pokeapi -Tische und Fremdschlüsseln einfach zu verfolgen
# 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-applyWenn Sie fertig sind, werden Sie http: // localhost: 8080 und Sie finden die Administratorkonsole. Der GraphQL -Endpunkt wird unter http: // localhost: 8080/v1/graphql gehostet.
Eine kostenlose öffentliche Grafikkonsole ist unter der Adresse https://beta.pokeapi.co/graphql/console/ durch. Der relative GraphQL -Endpunkt ist unter https://beta.pokeapi.co/graphql/v1beta zugegriffen
Eine Reihe von Beispielen finden Sie im Verzeichnis /GraphQL /Beispiele dieses Repositorys.
Kustomize -Dateien finden Sie im Ordner https://github.com/pokeapi/pokeapi/tree/master/resources/k8s/kustomize/base/. Erstellen und ändern Sie Ihre Geheimnisse:
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 Konfigurieren Sie kubectl , um auf einen Cluster zu verweisen, und führen Sie die folgenden Befehle aus, um einen Pokéapi -Dienst zu starten.
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 Dieses K8S -Setup erstellt alle K8S -Ressourcen im Namespace pokeapi und rennen Sie kubectl delete namespace pokeapi um sie zu löschen. Es schafft auch einen Dienst vom Typ LoadBalancer , der in Port 80 und 443 freigelegt ist. Die Daten sind auf 12Gi von ReadWriteOnce -Bänden bestehen.
| Offizielle Verpackung | Repository | Merkmale |
|---|---|---|
| Node Server-Side | Pokeapi/Pokedex-Promise-V2 | Automatisches Caching |
| Browser-Client-Seite | Pokeapi/pokeapi-js-wrapper | Automatisches Caching , Bilddaching |
| Java/Kotlin | Pokeapi/Pokekotlin | |
| Python 2/3 | Pokeapi/Pokepy | Automatisches Caching |
| Python 3 | Pokeapi/Pokebase | Automatisches Caching , Bilddaching |
| Verpackung | Repository | Merkmale |
|---|---|---|
| .NET Standard | MTRDP642/POKEAPINET | Automatisches Caching |
| Pfeil | Prathanbomb/PokedArt | |
| Gehen | MTSLZR/POKEAPI-GO | Automatisches Caching |
| Php | lmerotta/phpokeapi | Automatisches Caching, faules Laden |
| Powershell | Celerium/pokeapi-powerShellwrapper | |
| Python | BEASTMATER/AIOPOKEAPI | Automatischem Caching, asynchron |
| Rubin | rdavid1099/poke-api-v2 | |
| Rost | Lunik1/Pokerust | Automatisches Caching |
| Scala | Juliano/Pokeapi-Scala | Automatisches Caching |
| Federstiefel | DLFigueira/Spring-Pokeapi | Automatisches Caching |
| Schnell | Kinkofer/Pokemonapi | |
| Typscript Server-Side/Client-Seite | Gabb-c/pokenode-ts | Automatisches Caching |
Helfen Sie, Pokéapi am Laufen zu halten! Wenn Sie Pokéapi als Lehrressource oder für ein Projekt verwenden, sollten Sie uns eine Spende senden, um den Service aufrechtzuerhalten. Wir erhalten mehr als 1 Milliarden Anfragen pro Monat!
Vielen Dank an alle unsere Unterstützer! Backer werden
Warnung Derzeit hat kein Betreuer genügend Freizeit, um die Community bei Slack zu unterstützen. Unsere Lücke befindet sich in einem unerwünschten Status.
Haben Sie eine Frage oder möchten nur neue Ideen und Verbesserungen diskutieren? Schlagen Sie uns auf Slack. Überlegen Sie sich hier, bevor Sie ein neues Problem erstellen. Auf diese Weise können wir auf lange Sicht Probleme hier ein bisschen organisierter und hilfreicher halten. Hervorragend zueinander sein?
Melden Sie sich leicht an!
Sobald Sie sich angemeldet haben, besuchen Sie Pokéapi auf Slack
Dieses Projekt besteht dank aller Menschen, die einen Beitrag leisten
Alle Beiträge sind willkommen: Fehlerbehebungen, Datenbeiträge und Empfehlungen.
Bitte beachten Sie die Probleme in GitHub, bevor Sie eine Pull -Anfrage einreichen oder ein Problem aufwerfen. Möglicherweise hat Sie möglicherweise jemand anderes geschlagen.
Um zu diesem Repository beizutragen:
Geben Sie das Projekt in Ihr eigenes Github -Profil aus
Laden Sie das Forked -Projekt mit Git Clone herunter:
git clone --recurse-submodules [email protected]: < YOUR_USERNAME > /pokeapi.gitErstellen Sie einen neuen Zweig mit einem beschreibenden Namen:
git checkout -b my_new_branchSchreiben Sie etwas Code, beheben Sie etwas und fügen Sie einen Test hinzu, um zu beweisen, dass er funktioniert. Ohne Tests oder ohne neue Tests wird keine Pull -Anfrage angenommen, wenn neue Funktionen hinzugefügt werden.
Verpflichten Sie Ihren Code und geben Sie ihn zu Github
Öffnen Sie eine neue Pull -Anfrage und beschreiben Sie die von Ihnen vorgenommenen Änderungen.
Wir werden Ihre Änderungen nach der Überprüfung akzeptieren.
Einfach!
Im Oktober 2018 wurde die V1 -API von Pokéapi entfernt. Weitere Informationen finden Sie unter pokeapi.co/docs/v1.html.