Una API RESTful para Pokémon - Pokeapi.co
¡Beta GraphQL Support se está implementando! Consulte el párrafo GraphQL para obtener más información.
Descargue este código fuente en un directorio de trabajo, asegúrese de usar el indicador --recurse-submodules para clonar también nuestros submódulos.
Instale los requisitos con PIP:
make install
# This will install all the required packages and libraries for using PokeAPIConfigure el entorno de desarrollo local utilizando el siguiente comando:
make setup Ejecute el servidor en el puerto 8000 usando el siguiente comando:
make servePara construir o reconstruir la base de datos aplicando cualquier actualización del archivo CSV, ejecute
make build-dbVisite Localhost: 8000/API/V2/¡Para ver la API en ejecución!
Cada vez que se ejecuta el script build-db , iterará sobre cada tabla en la base de datos, lo borrará y reescribirá cada fila utilizando los datos encontrados en Data/V2/CSV.
Si alguna vez necesita borrar la base de datos, use este comando:
make wipe-sqlite-dbSi el esquema de la base de datos ha cambiado, genere alguna migración pendiente y aplíquelas
make make-migrations
make migrate Ejecutar make help para ver todas las tareas.
También hay una configuración de múltiples contenedores, administrada por Docker Compose V2. Esta configuración le permite implementar un entorno similar a una producción, con contenedores separados para cada servicio, y se recomienda si simplemente necesita girar Pokéapi.
Empezar todo
make docker-setup Si no tiene make en su máquina, puede usar los siguientes 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 ' Explore LocalHost/API/V2/o Localhost/API/V2/Pokemon/Bulbasaur/On Port 80 .
Para reconstruir la base de datos y aplicar cualquier actualización del archivo CSV, ejecutar
make docker-build-dbSi el esquema de la base de datos ha cambiado, genere las migraciones y aplique las
make docker-make-migrations
make docker-migrateCuando comienza a Pokéapi con la configuración de composición de Docker anterior, también se inicia un servidor de motores de Hasura. Es posible rastrear todas las tablas y claves extranjeras de Pokeapi por simplemente
# 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-applyCuando termine, explore http: // localhost: 8080 y encontrará la consola de administración. El punto final GraphQL se alojará en http: // localhost: 8080/v1/graphql.
Una consola Public Graphiql gratuita es navegable en la dirección https://beta.pokeapi.co/graphql/console/. Se puede acceder al punto final de GraphQL relativo en https://beta.pokeapi.co/graphql/v1beta
Se proporciona un conjunto de ejemplos en el Directorio /GraphQL /Ejemplos de este repositorio.
Los archivos Kustomize se proporcionan en la carpeta https://github.com/pokeapi/pokeapi/tree/master/resources/k8s/kustomize/base/. Crea y cambia tus secretos:
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 apuntar a un clúster y luego ejecute los siguientes comandos para iniciar un servicio 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 Esta configuración de K8s crea todos los recursos de K8s dentro del espacio de nombres pokeapi , ejecute kubectl delete namespace pokeapi para eliminarlos. También crea un servicio de tipo LoadBalancer que está expuesto en el puerto 80 y 443 . Los datos se persisten en 12Gi de los volúmenes ReadWriteOnce .
| Envoltura oficial | Repositorio | Características |
|---|---|---|
| Servidor de nodo | Pokeapi/Pokedex-Promise-V2 | Almacenamiento automático |
| Navegador junto al cliente | Pokeapi/Pokeapi-JS-Wrapper | Auto almacenado en caché , almacenamiento en caché de imágenes |
| Java/Kotlin | Pokeapi/pokotlin | |
| Python 2/3 | Pokeapi/pochino | Almacenamiento automático |
| Python 3 | Pokeapi/Pokebase | Auto almacenado en caché , almacenamiento en caché de imágenes |
| Envoltura | Repositorio | Características |
|---|---|---|
| .NET estándar | mtrdp642/pokeapinet | Almacenamiento automático |
| Dardo | prathanbomb/pokedart | |
| Ir | mtslzr/pokeapi-go | Almacenamiento automático |
| Php | lmerotta/phpokeapi | Almacenamiento automático de almacenamiento automático, carga perezosa |
| Powershell | Celerium/Pokeapi-Powershellwrapper | |
| Pitón | Beastmatser/aiopokeapi | Almacenamiento automático de almacenamiento automático, asíncrono |
| Rubí | RDAVID1099/POKE-API-V2 | |
| Óxido | lunik1/pokerust | Almacenamiento automático |
| Escala | juliano/pokeapi-escala | Almacenamiento automático |
| Arranque de primavera | dlfigueira/spring-pokeapi | Almacenamiento automático |
| Rápido | Kinkofer/Pokemonapi | |
| TypeScript Servidor/lado del cliente | Gabb-C/Pokenode-TS | Almacenamiento automático |
¡Ayuda a mantener a Pokéapi en funcionamiento! Si está utilizando Pokéapi como recurso de enseñanza o para un proyecto, considere enviarnos una donación para ayudar a mantener el servicio alto. ¡Recibimos más de 1 mil millones de solicitudes al mes!
¡Gracias a todos nuestros patrocinadores! Convertirse en un patrocinador
Actualmente, la advertencia ningún mantenedor tiene suficiente tiempo libre para apoyar a la comunidad en Slack. Nuestra holgura está en un estado no mantenido.
¿Tiene una pregunta o simplemente quiere discutir nuevas ideas y mejoras? Golpea en Slack. Considere hablar con nosotros aquí antes de crear un nuevo problema. De esta manera, podemos mantener los problemas aquí un poco más organizados y útiles a largo plazo. Ser excelentes el uno con el otro?
¡Regístrese fácilmente!
Una vez que se haya registrado, visite Pokéapi en Slack
Este proyecto existe gracias a todas las personas que contribuyen
Todas las contribuciones son bienvenidas: correcciones de errores, contribuciones de datos y recomendaciones.
Consulte los problemas en GitHub antes de enviar una solicitud de extracción o plantear un problema, alguien más podría haberlo vencido.
Para contribuir a este repositorio:
Bifurca el proyecto a su propio perfil de Github
Descargue el proyecto bifurcado usando Git Clone:
git clone --recurse-submodules [email protected]: < YOUR_USERNAME > /pokeapi.gitCree una nueva rama con un nombre descriptivo:
git checkout -b my_new_branchEscriba algún código, solucione algo y agregue una prueba para demostrar que funciona. No se aceptará ninguna solicitud de extracción sin que pasen pruebas, o sin nuevas pruebas si se agregan nuevas características.
Comprometa tu código y empújalo a GitHub
Abra una nueva solicitud de extracción y describa los cambios que ha realizado.
Aceptaremos sus cambios después de la revisión.
¡Simple!
A partir de octubre de 2018, la API V1 ha sido eliminada de Pokéapi. Para obtener más información, consulte Pokeapi.co/docs/v1.html.