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。