Pokémon -pokeapi.co的宁静API
Beta GraphQL支持正在推出!查看GraphQL段落以获取更多信息。
将此源代码下载到工作目录中,请确保将标志--recurse-submodules也用于克隆我们的子模块。
使用PIP安装要求:
make install
# This will install all the required packages and libraries for using PokeAPI使用以下命令设置本地开发环境:
make setup使用以下命令在端口8000上运行服务器:
make serve要通过应用任何CSV文件更新来构建或重建数据库,请运行
make build-db访问Local主持:8000/API/V2/查看运行API!
每次运行build-db脚本时,都会在数据库中的每个表上迭代,擦拭并使用数据/V2/CSV中的数据重写每一行。
如果您需要擦除数据库,请使用此命令:
make wipe-sqlite-db如果数据库架构已更改,请生成任何未出色的迁移并应用它们
make make-migrations
make migrate运行make help查看所有任务。
还有一个由Docker Compose V2管理的多容器设置。此设置使您可以部署一个类似生产的环境,并为每种服务提供单独的容器,并建议您简单地旋转Pokéapi。
开始一切
make docker-setup如果您没有在计算机上make则可以使用以下命令
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 '在端口80上浏览Localhost/api/v2/api/v2/localhost/api/v2/pokemon/bulbasaur/。
要重建数据库并应用任何CSV文件更新,请运行
make docker-build-db如果数据库模式已更改,请生成迁移并应用这些
make docker-make-migrations
make docker-migrate当您使用上述Docker组成的设置启动Pokéapi时,也可以启动Hasura Engine服务器。可以简单地跟踪所有Pokeapi桌子和外国钥匙
# 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-apply完成后,浏览http:// localhost:8080,您会找到管理台。 GraphQL端点将托管在http:// localhost:8080/v1/graphql。
可以在地址https://beta.pokeapi.co/graphql/console/上浏览免费的公共graphiql控制台。可在https://beta.pokeapi.co/graphql/v1beta上访问相关GraphQl端点
此存储库的目录 /GraphQL /示例中提供了一组示例。
https://github.com/pokeapi/pokeapi/pokeapi/tree/master/master/resources/k8s/kustomize/base/中提供了kustomize文件。创建和更改您的秘密:
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配置kubectl指向群集,然后运行以下命令以启动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此K8S设置在名称空间pokeapi中创建所有K8S资源,运行kubectl delete namespace pokeapi以删除它们。它还创建了一种类型的LoadBalancer服务,该服务已在端口80和443上暴露。数据持续存在于ReadWriteOnce卷的12Gi上。
| 官方包装纸 | 存储库 | 特征 |
|---|---|---|
| 节点服务器端 | pokeapi/pokedex-promise-v2 | 自动缓存 |
| 浏览器客户端 | pokeapi/pokeapi-js-wrapper | 自动缓存,图像缓存 |
| Java/Kotlin | Pokeapi/Pokekotlin | |
| Python 2/3 | pokeapi/pokepy | 自动缓存 |
| Python 3 | pokeapi/pokebase | 自动缓存,图像缓存 |
| 包装纸 | 存储库 | 特征 |
|---|---|---|
| .NET标准 | mtrdp642/pokeapinet | 自动缓存 |
| 镖 | Prathanbomb/Pokedart | |
| 去 | mtslzr/pokeapi-go | 自动缓存 |
| php | Lmerotta/phpokeapi | 自动缓存,懒惰的加载 |
| Powershell | Celerium/Pokeapi-Powershellwrapper | |
| Python | Beastmatser/Aiopokeapi | 自动缓存,异步 |
| 红宝石 | rdavid1099/poke-api-v2 | |
| 锈 | lunik1/pokerust | 自动缓存 |
| Scala | Juliano/Pokeapi-Scala | 自动缓存 |
| 春季引导 | dlfigueira/spring-pokeapi | 自动缓存 |
| 迅速 | Kinkofer/Pokemonapi | |
| 打字服务服务器端/客户端 | GABB-C/Pokenode-TS | 自动缓存 |
帮助保持Pokéapi运行!如果您将Pokéapi用作教学资源或项目,请考虑向我们发送捐款以帮助保持服务。我们每个月收到10亿多个请求!
感谢我们所有的支持者!成为支持者
警告目前没有维护者有足够的空闲时间来支持Slack社区。我们的懈怠处于不太细的状态。
有问题还是只是想讨论新的想法和改进?打我们懈怠。在创建新问题之前,请考虑在这里与我们交谈。从长远来看,我们可以将问题保持在这里更有条理和有帮助。彼此好吗?
轻松注册!
签约后,请在Slack上访问Pokéapi
该项目的存在,这要归功于所有贡献的人
欢迎所有贡献:错误修复,数据贡献和建议。
在提交拉动请求或提出问题之前,请在GitHub上查看问题,其他人可能会击败您。
为此存储库做出贡献:
将项目分配给您自己的github个人资料
使用git克隆下载叉子项目:
git clone --recurse-submodules [email protected]: < YOUR_USERNAME > /pokeapi.git创建一个具有描述名称的新分支:
git checkout -b my_new_branch编写一些代码,修复某些内容并添加测试以证明其有效。如果添加新功能,则不会在没有测试的情况下或没有新测试的情况下接受拉动请求。
提交您的代码并将其推向GitHub
打开新的拉请请求并描述您所做的更改。
审查后我们会接受您的更改。
简单的!
截至2018年10月,V1 API已从Pokéapi中删除。有关更多信息,请参见pokeapi.co/docs/v1.html。