Une API RESTful pour Pokémon - Pokéapi.co
La prise en charge de Beta GraphQL est déployée! Consultez le paragraphe GraphQL pour plus d'informations.
Téléchargez ce code source dans un répertoire de travail, assurez-vous d'utiliser l'indicateur --recurse-submodules pour cloner également nos sous-modules.
Installez les exigences à l'aide de PIP:
make install
# This will install all the required packages and libraries for using PokeAPIConfigurez l'environnement de développement local à l'aide de la commande suivante:
make setup Exécutez le serveur sur le port 8000 à l'aide de la commande suivante:
make servePour créer ou reconstruire la base de données en appliquant une mise à jour du fichier CSV, exécutez
make build-dbVisitez LocalHost: 8000 / API / V2 / pour voir l'API en cours d'exécution!
Chaque fois que le script build-db est exécuté, il iratera sur chaque table dans la base de données, les essuiez et réécrivra chaque ligne en utilisant les données trouvées dans Data / V2 / CSV.
Si vous avez besoin d'effacer la base de données, utilisez cette commande:
make wipe-sqlite-dbSi le schéma de la base de données a changé, générez des migrations en cours et appliquez-les
make make-migrations
make migrate Run, make help pour voir toutes les tâches.
Il existe également une configuration multi-container, gérée par Docker Compose V2. Cette configuration vous permet de déployer un environnement de type production, avec des conteneurs séparés pour chaque service, et est recommandé si vous devez simplement faire tourner Pokéapi.
Tout démarrer
make docker-setup Si vous n'avez pas make sur votre machine, vous pouvez utiliser les commandes suivantes
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 ' Parcourez localhost / api / v2 / ou localhost / api / v2 / pokemon / bulbasaur / sur le port 80 .
Pour reconstruire la base de données et appliquer toutes les mises à jour du fichier CSV, exécuter
make docker-build-dbSi le schéma de la base de données a changé, générez les migrations et appliquez celles
make docker-make-migrations
make docker-migrateLorsque vous démarrez Pokéapi avec la configuration Docker Compose ci-dessus, un serveur Hasura Engine est également démarré. Il est possible de suivre toutes les tables Pokéapi et les clés étrangères simplement
# 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-applyUne fois terminé, parcourez http: // localhost: 8080 et vous trouverez la console d'administration. Le point de terminaison GraphQL sera hébergé sur http: // localhost: 8080 / v1 / graphQL.
Une console Graphiql publique gratuite est navigable à l'adresse https://beta.pokapi.co/graphql/console/. Le point de terminaison relatif GraphQL est accessible à https://beta.pokapi.co/graphql/v1beta
Un ensemble d'exemples est fourni dans le répertoire / GraphQL / Exemples de ce référentiel.
Les fichiers kustomze sont fournis dans le dossier https://github.com/pokapi/pokapi/tree/master/resources/k8s/kustomalize/base/. Créez et modifiez vos secrets:
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 Configurez kubectl pour pointer vers un cluster, puis exécutez les commandes suivantes pour démarrer un service 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 Cette configuration K8S crée toutes les ressources K8S à l'intérieur de l' espace de noms pokeapi , exécutez kubectl delete namespace pokeapi pour les supprimer. Il crée également un service de type LoadBalancer qui est exposé sur les ports 80 et 443 . Les données sont persistées sur 12Gi de volumes ReadWriteOnce .
| Emballage officiel | Dépôt | Caractéristiques |
|---|---|---|
| Côté serveur de nœud | POKEAPI / POKEDEX-PROMISE-V2 | Cache automatique |
| Côté client | Pokéapi / Pokéapi-Js-Wrapper | Cache automatique , mise en cache d'image |
| Java / Kotlin | Pokéapi / pokekotlin | |
| Python 2/3 | Pokeapi / Pokepy | Cache automatique |
| Python 3 | Pokeapi / Pokebase | Cache automatique , mise en cache d'image |
| Emballage | Dépôt | Caractéristiques |
|---|---|---|
| .NET Norme | MTRDP642 / POKEAPINET | Cache automatique |
| Dard | prathanbomb / pokedart | |
| Aller | MTSLZR / POKEAPI-GO | Cache automatique |
| Php | lmerotta / phpokapi | Cache automatique, chargement paresseux |
| Powershell | Celerium / Pokeapi-Powershellwrapper | |
| Python | Beastmatser / Aiopokapi | Cache automatique, asynchrone |
| Rubis | rdavid1099 / poke-api-v2 | |
| Rouiller | LUNIK1 / POKERUst | Cache automatique |
| Scala | Juliano / Pokéapi-Scala | Cache automatique |
| Botte de printemps | dlfigueira / printemps-pokapi | Cache automatique |
| Rapide | Kinkofer / Pokemonapi | |
| TypeScript côté serveur / côté client | Gabb-c / pokenode-ts | Cache automatique |
Aidez à faire fonctionner Pokéapi! Si vous utilisez Pokéapi comme ressource pédagogique ou pour un projet, envisagez de nous envoyer un don pour aider à maintenir le service. Nous obtenons 1 milliard de demandes par mois!
Merci à tous nos bailleurs de fonds! Devenir un bailleur de fonds
AVERTISSEMENT ENTREPRISE AUCUNEUREUREURE A A assez de temps libre pour soutenir la communauté sur Slack. Notre Slack est dans un statut non tenu.
Vous avez une question ou vous voulez simplement discuter de nouvelles idées et améliorations? Frappez-nous sur Slack. Pensez à nous parler ici avant de créer un nouveau problème. De cette façon, nous pouvons garder les problèmes ici un peu plus organisés et utiles à long terme. Être excellent les uns envers les autres?
Inscrivez-vous facilement!
Une fois que vous vous êtes inscrit, visitez Pokéapi sur Slack
Ce projet existe grâce à toutes les personnes qui contribuent
Toutes les contributions sont les bienvenues: correctifs de bogues, contributions de données et recommandations.
Veuillez consulter les problèmes sur GitHub avant de soumettre une demande de traction ou de soulever un problème, quelqu'un d'autre pourrait vous y avoir battu.
Pour contribuer à ce référentiel:
Fourk le projet sur votre propre profil GitHub
Téléchargez le projet fourchu à l'aide de Git Clone:
git clone --recurse-submodules [email protected]: < YOUR_USERNAME > /pokeapi.gitCréez une nouvelle branche avec un nom descriptif:
git checkout -b my_new_branchÉcrivez du code, corrigez quelque chose et ajoutez un test pour prouver que cela fonctionne. Aucune demande de traction ne sera acceptée sans passer des tests, ou sans de nouveaux tests si de nouvelles fonctionnalités sont ajoutées.
Commentez votre code et poussez-le sur github
Ouvrez une nouvelle demande de traction et décrivez les modifications que vous avez apportées.
Nous accepterons vos modifications après examen.
Simple!
En octobre 2018, l'API V1 a été retirée de Pokéapi. Pour plus d'informations, voir PokEapi.co/Docs/v1.html.