Restful API для Pokémon - Pokeapi.co
Поддержка 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Посетите LocalHost: 8000/API/V2/чтобы увидеть бегущий API!
Каждый раз, когда запускается сценарий build-db , он будет выполнять каждую таблицу в базе данных, протрите его и переписывает каждую строку, используя данные, найденные в Data/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 ' Просмотрите Localhost/API/V2/или Localhost/API/V2/Pokemon/Bulbasaur/на порту 80 .
Чтобы восстановить базу данных и применить любые обновления файлов CSV, запустите
make docker-build-dbЕсли схема базы данных изменилась, генерируйте миграции и примените
make docker-make-migrations
make docker-migrateКогда вы запускаете Pokéapi с настройкой Docker Compose, также запускается сервер двигателя Hasura. Можно отслеживать все столы 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.
Бесплатная общедоступная консоль Graphiql можно просмотреть по адресу https://beta.pokeapi.co/graphql/console/. Относительная конечная точка GraphQL доступна по адресу https://beta.pokeapi.co/graphql/v1beta
Набор примеров приведен в Directory /GraphQL /Примеры этого репозитория.
Файлы Kustomize представлены в папке https://github.com/pokeapi/pokeapi/tree/master/resources/k8s/kustomize/base/. Создайте и измените свои секреты:
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 создает все ресурсы K8S в пространстве имен pokeapi , запустите kubectl delete namespace pokeapi , чтобы удалить их. Это также создает услугу типа LoadBalancer , которая выставлена на порту 80 и 443 . Данные сохраняются на 12Gi объемов ReadWriteOnce .
| Официальная обертка | Репозиторий | Функции |
|---|---|---|
| Узел сервер | Pokeapi/pokedex-promise-v2 | Автоэширование |
| Браузер клиентская сторона | Pokeapi/pokeapi-js-wrapper | Автоэшинг , кэширование изображений |
| Java/Kotlin | Pokeapi/Pokekotlin | |
| Python 2/3 | Pokeapi/Pokepy | Автоэширование |
| Питон 3 | Pokeapi/Pokebase | Автоэшинг , кэширование изображений |
| Обертка | Репозиторий | Функции |
|---|---|---|
| .NET Стандарт | mtrdp642/pokeapinet | Автоэширование |
| Дрэк | Prathanbomb/pokedart | |
| Идти | mtslzr/pokeapi-go | Автоэширование |
| PHP | Lmerotta/Phpokeapi | Автокэширование, ленивая загрузка |
| PowerShell | Celerium/Pokeapi-PowerShellWrapper | |
| Питон | Beastmatser/Aiopokeapi | Автоэрагирование, асинхронное |
| Рубин | RDAVID1099/POKE-API-V2 | |
| Ржавчина | Lunik1/Pokerust | Автоэширование |
| Скала | Джулиано/Покеап-Скала | Автоэширование |
| Весенний ботинок | Dlfigueira/Spring-Pokeapi | Автоэширование |
| Быстрый | Kinkofer/Pokemonapi | |
| TypeScript Server-Side/Client Side | GABB-C/PONKEDODE-TS | Автоэширование |
Помогите поддерживать бег Pokéapi! Если вы используете Pokéapi в качестве учебного ресурса или для проекта, рассмотрите возможность отправить нам пожертвование, чтобы помочь сохранить услугу. Мы получаем 1+ миллиарда запросов в месяц!
Спасибо всем нашим покровителям! Станьте покровителем
В настоящее время предупреждение ни у одного, а также у сопровождающего достаточно свободного времени, чтобы поддержать сообщество в Slack. Наша слабая находится в неоснованном статусе.
Есть вопрос или просто хотите обсудить новые идеи и улучшения? Ударь нас по славу. Подумайте о том, чтобы поговорить с нами здесь, прежде чем создать новую проблему. Таким образом, мы можем сохранить проблемы здесь немного более организованными и полезными в долгосрочной перспективе. Быть превосходными друг для друга?
Зарегистрируйтесь легко!
После того, как вы зарегистрировались, посетите Pokéapi на Slack
Этот проект существует благодаря всем людям, которые вносят свой вклад
Все взносы приветствуются: исправления ошибок, вклады данных и рекомендации.
Пожалуйста, посмотрите проблемы на GitHub, прежде чем отправить запрос на привлечение или поднять проблему, кто -то другой мог бы победить вас.
Чтобы внести свой вклад в этот репозиторий:
Разветвляется проект в свой собственный профиль GitHub
Загрузите проект Vorked с помощью Git Clone:
git clone --recurse-submodules [email protected]: < YOUR_USERNAME > /pokeapi.gitСоздайте новую ветку с описательным именем:
git checkout -b my_new_branchНапишите код, исправьте что -нибудь и добавьте тест, чтобы доказать, что он работает. Запрос на вывод не будет принят без прохождения тестов или без новых тестов, если добавлены новые функции.
Сделайте свой код и подтолкните его на GitHub
Откройте новый запрос на привлечение и опишите внесенные вами изменения.
Мы примем ваши изменения после обзора.
Простой!
По состоянию на октябрь 2018 года API V1 был удален из Pokéapi. Для получения дополнительной информации см. Pokeapi.co/docs/v1.html.