Declare o Kong que você deseja, com yaml
. Pare de curl
s manuais e mantenha os documentos deles.
Gerencia recursos via Kong Admin API (REST, HTTP assíncrono, JSON). Inclui exemplo para adicionar autorização à própria API Admin.
Algumas alterações incompatíveis com o aio-kong de Luca Sbardella.
make
test
, retest
, build
, install
, publish_pypi
, ....venvs/
para desenvolvimento e lançamento, gerenciado por regras make
clarity
, instafail
e spec
, testes executados em dev venvpur
para reqs e black
, flake8
, mypy
para códigowheel
para bdist e twine
para publicar PyPis--output
para limitar a saída a uma propriedade JSON (para scripts) ou tenha None
examples/
para loopback da API Kong Admin e exemplo de endpoint por meio deleKONG_ADMIN_URL
, o padrão é http://localhost:8001
KONG_ADMIN_KEY
para usar a API Kong Admin via loopback e key-auth--admin-url
e --admin-key
para ter precedência sobre os dois acimaKONG_URL
BWIC--ip
BWICPENDÊNCIA:
Do PyPI:
pip install --upgrade kong-incubator
Python >= 3.6 necessário.
O padrão KONG_ADMIN_URL
é http://localhost:8001.
Crie ou atualize recursos (é um proxy para Mockbin):
kong-incubator --yaml examples/mockbin.yaml
Gere uma key
aleatória para seu consumidor:
kong-incubator --key-auth mocker
Consumidor de saída somente se key
já tiver sido definida.
Executar com um --yaml
alterado apenas atualiza as partes alteradas. Os recursos removidos do arquivo não são excluídos do Kong. Para excluir um recurso do Kong, adicione ensure: absent
para ele no YAML.
Para obter uma lista de todas as opções, execute sem nenhuma:
$ kong-incubator
Usage: kong-incubator [OPTIONS]
Options:
--admin-url TEXT Kong Admin API URL.
Default: http://localhost:8001
Precedence over KONG_ADMIN_URL
--admin-key TEXT Kong Admin API apikey if required.
Default: None
Precedence over KONG_ADMIN_KEY
--key-auth TEXT Consumer to generate a key or output the existing.
--yaml FILENAME Defines one or many Kong resources by their target
state.
--output TEXT If given, restrict output to this JSON property, or
None.
By default, output everything.
--version Output version and exit.
--help Show this message and exit.
Cria loopback da API Kong Admin exigindo autenticação de chave:
kong-incubator --yaml examples/kadmin.yaml
kong-incubator --key-auth root --output key
De agora em diante, gerencie o Kong através do loopback (verifica o cabeçalho da solicitação apikey
):
export KONG_ADMIN_URL=http://localhost:8000/kadmin
export KONG_ADMIN_KEY={{thekeyabove}}
kong-incubator --yaml ..
As opções --admin-url
ou --admin-key
podem ser usadas ou ter precedência:
export KONG_ADMIN_URL=http://localhost:8000/kadmin
kong-incubator --admin-key={{thekeyabove}} --yaml ..
No Kubernetes/OpenShift, remova as rotas para 8001 e 8444.
import json
from kong . client import Kong
async with Kong () as cli :
services = await cli . services . get_list ()
print ( json . dumps ( services , indent = 4 ))
Os testes pressupõem que você tenha a API Kong Admin em execução em http://localhost:8001.
Se você tiver docker-compose
disponível, poderá executar make dc
para obter kongpose/ como um submódulo git e iniciá-lo em segundo plano para testes. Use make dc_rm
para parar e remover a pilha, incluindo os volumes para bancos de dados.
Execute make
como um atalho para outras três regras:
make test
cria .venvs/dev
e instala requisitos, também dev. Para executar novamente apenas os testes com falha, se houver, caso contrário, todos, use make retest
que ignora a instalação de requisitos (-dev). Ambos limpam os recursos Kong que criam.
make build
recria .venvs/release
em cada execução, instala ferramentas de compilação lá e cria fontes e dists de roda prontos para publicação.
make install
instala o pacote da árvore de origem. Não há necessidade de reinstalar após as edições do código-fonte, pois o pacote é editável instalado.
Você pode make --jobs
execute as regras acima paralelamente, portanto, em 3 núcleos de CPU.
Execute make pur
para atualizar as versões bloqueadas de requisitos (-dev) para as dependências que as possuem.
Além disso, execute make {{tool}}
para black, flake8 ou mypy. As configurações para flake8
e mypy
, bem como pytest estão em seus próprios arquivos de configuração, pois ainda não suportam pyproject.toml
, como black
.
Execute make clean
para remover .venvs/
, build/
, dist/
e caches da árvore de origem.
Veja make help
para todas as regras:
all Run test, build and install (default goal)
black Reformat source code in-place
build Build source dist and wheel
clean Remove .venvs, builds, dists, and caches
dc_rm Stop and remove docker-compose env and volumes
dc Start docker-compose env on background
flake8 Run flake8 for static code analysis
install Install package from source tree, as --editable
install_pypi Install the latest PyPI release
install_test Install the latest test.pypi.org release
mypy Run mypy for static type checking
publish_pypi Publish dists to PyPI
publish_test Publish dists to test.pypi.org
pur Update requirements(-dev) for locked versions
retest Run failed tests only, if none, run all
test Run tests, installs requirements(-dev) first
uninstall Uninstall the package, regardless of its origin
Twine incluído para upload por HTTPS.
Para testar o PyPI:
make publish_test
Para PyPI
make publish_pypi