Uma API RESTful para Pokémon - Pokeapi.co
O suporte beta grafql está sendo lançado! Confira o parágrafo do GraphQL para obter mais informações.
Faça o download desse código-fonte em um diretório de trabalho, use o sinalizador --recurse-submodules para clonar também nossos submódulos.
Instale os requisitos usando PIP:
make install
# This will install all the required packages and libraries for using PokeAPIConfigure o ambiente de desenvolvimento local usando o seguinte comando:
make setup Execute o servidor na porta 8000 usando o seguinte comando:
make servePara construir ou reconstruir o banco de dados aplicando qualquer atualização de arquivo CSV, execute
make build-dbVisite localhost: 8000/API/V2/Para ver a API em execução!
Cada vez que o script build-db é executado, ele itera sobre cada tabela no banco de dados, limpa-o e reescreva cada linha usando os dados encontrados nos dados/V2/CSV.
Se você precisar limpar o banco de dados, use este comando:
make wipe-sqlite-dbSe o esquema do banco de dados mudou, gerar qualquer migração pendente e aplicá -las
make make-migrations
make migrate Run make help para ver todas as tarefas.
Há também uma configuração multi-container, gerenciada pelo Docker Compose V2. Essa configuração permite implantar um ambiente semelhante à produção, com contêineres separados para cada serviço, e é recomendado se você precisar simplesmente girar Pokéapi.
Comece tudo por
make docker-setup Se você não make em sua máquina, pode usar os seguintes comandos
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 ' Procure localhost/api/v2/ou localhost/api/v2/pokemon/bulbasaur/na porta 80 .
Para reconstruir o banco de dados e aplicar todas as atualizações de arquivos CSV, execute
make docker-build-dbSe o esquema do banco de dados mudou, gerar as migrações e aplicar aquelas
make docker-make-migrations
make docker-migrateQuando você inicia o Pokéapi com a configuração do Docker Compõe acima, um servidor de mecanismo Hasura também é iniciado. É possível rastrear todas as mesas de Pokeapi e chaves estrangeiras por simplesmente
# 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-applyQuando terminado, navegue http: // localhost: 8080 e você encontrará o console do administrador. O endpoint do GraphQL será hospedado em http: // localhost: 8080/v1/grafql.
Um console público gratuito do GraphIQL é navegado no endereço https://beta.pokeapi.co/graphql/console/. O endpoint relativo do GraphQL é acessível em https://beta.pokeapi.co/graphql/v1beta
Um conjunto de exemplos é fornecido no diretório /grafql /exemplos deste repositório.
Os arquivos Kustomize são fornecidos na pasta https://github.com/pokeapi/pokeapi/tree/master/resources/k8s/kustomize/base/. Crie e altere seus segredos:
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 Configure kubectl para apontar para um cluster e, em seguida, execute os seguintes comandos para iniciar um serviço 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 Essa configuração do K8S cria todos os recursos do K8S dentro do espaço de nome pokeapi , execute kubectl delete namespace pokeapi para excluí -los. Ele também cria um serviço de tipo LoadBalancer que está exposto na porta 80 e 443 . Os dados são persistidos em 12Gi de volumes ReadWriteOnce .
| Invólucro oficial | Repositório | Características |
|---|---|---|
| Node servidor-lado | POKEAPI/POKEDEX-PROMISHE-V2 | Cache automático |
| Navegador do navegador | POKEAPI/POKEAPI-JS-JS-WRAPPER | Cache automático , cache de imagem |
| Java/Kotlin | Pokeapi/Pokekotlin | |
| Python 2/3 | POKEAPI/Pokey | Cache automático |
| Python 3 | Pokeapi/Pokebase | Cache automático , cache de imagem |
| Invólucro | Repositório | Características |
|---|---|---|
| .NET padrão | Mtrdp642/Pokeapinet | Cache automático |
| Dardo | PrathanBomb/Pokedart | |
| Ir | MTSLZR/POKEAPI-GO | Cache automático |
| Php | LMEROTTA/PHPOKEAPI | Cache automático, carregamento preguiçoso |
| Powershell | CELERIUM/POKEAPI-POWERSHELLWRAPPER | |
| Python | BeastMatser/Aiopokeapi | Cache automático, assíncrono |
| Rubi | RDAVID1099/POKE-API-V2 | |
| Ferrugem | Lunik1/Pokerust | Cache automático |
| Scala | Juliano/Pokeapi-Scala | Cache automático |
| Botagem da primavera | Dlfiguira/Spring-Pokeapi | Cache automático |
| Swift | Kinkofer/Pokemonapi | |
| Typescript Server-side/side client | GABB-C/POKENODE-TS | Cache automático |
Ajude a manter o Pokéapi em funcionamento! Se você estiver usando o Pokéapi como recurso de ensino ou para um projeto, considere nos enviar uma doação para ajudar a manter o serviço. Recebemos mais de 1 bilhão de solicitações por mês!
Obrigado a todos os nossos apoiadores! Torne -se um patrocinador
Aviso Atualmente, nenhum mantenedor tem tempo livre suficiente para apoiar a comunidade no Slack. Nossa folga está em um status não mantido.
Tem uma pergunta ou apenas deseja discutir novas idéias e melhorias? Bata -nos no Slack. Considere conversar conosco aqui antes de criar um novo problema. Dessa forma, podemos manter os problemas aqui um pouco mais organizados e úteis a longo prazo. Seja excelente um para o outro?
Inscreva -se facilmente!
Depois de se inscrever, visite Pokéapi no Slack
Este projeto existe graças a todas as pessoas que contribuem
Todas as contribuições são bem -vindas: correções de bugs, contribuições de dados e recomendações.
Por favor, veja os problemas no Github antes de enviar uma solicitação de tração ou levantar um problema, alguém pode ter vencido você.
Para contribuir com este repositório:
Fork o projeto para o seu próprio perfil do GitHub
Faça o download do projeto bifurcado usando o git clone:
git clone --recurse-submodules [email protected]: < YOUR_USERNAME > /pokeapi.gitCrie uma nova filial com um nome descritivo:
git checkout -b my_new_branchEscreva algum código, conserte algo e adicione um teste para provar que ele funciona. Nenhuma solicitação de tração será aceita sem a passagem dos testes ou sem novos testes se novos recursos forem adicionados.
Compromete seu código e empurre -o para o github
Abra uma nova solicitação de tração e descreva as alterações que você fez.
Aceitaremos suas alterações após a revisão.
Simples!
Em outubro de 2018, a API V1 foi removida de Pokéapi. Para mais informações, consulte Pokeapi.co/docs/v1.html.