Declara el Kong que quieras, con yaml
. Detenga curl
manuales y mantenga sus documentos.
Gestiona recursos a través de Kong Admin API (REST, HTTP asíncrono, JSON). Incluye un ejemplo para agregar autorización a la propia API de administración.
Algunos cambios al revés son incompatibles con aio-kong de Luca Sbardella.
make
test
, retest
, build
, install
, publish_pypi
, ....venvs/
para desarrollo y lanzamiento, manejado por reglas make
.clarity
, instafail
y spec
, pruebas ejecutadas en dev venvpur
para requisitos y black
, flake8
, mypy
para códigowheel
para bdist y twine
para publicar PyPis--output
para limitar la salida a una propiedad JSON (para scripts), o tenga None
examples/
para el bucle invertido de la API de Kong Admin y un punto final de ejemplo a través de élKONG_ADMIN_URL
, el valor predeterminado es http://localhost:8001
KONG_ADMIN_KEY
para usar la API de administración de Kong mediante loopback y autenticación de clave--admin-url
y --admin-key
para tener prioridad sobre los dos anterioresKONG_URL
BWIC--ip
BWICHACER:
De PyPI:
pip install --upgrade kong-incubator
Se requiere Python >= 3.6.
KONG_ADMIN_URL
tiene como valor predeterminado http://localhost:8001.
Crear o actualizar recursos (es un proxy de Mockbin):
kong-incubator --yaml examples/mockbin.yaml
Genere una key
aleatoria para su consumidor:
kong-incubator --key-auth mocker
Consumidor de salida solo si key
ya se ha configurado.
Ejecutar con un --yaml
modificado solo actualiza las partes modificadas. Los recursos eliminados del archivo no se eliminan de Kong. Para eliminar un recurso de Kong, agregue ensure: absent
en YAML.
Para obtener una lista de todas las opciones, ejecute sin ninguna:
$ 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.
Crea un bucle invertido de API de administración de Kong que requiere autenticación de clave:
kong-incubator --yaml examples/kadmin.yaml
kong-incubator --key-auth root --output key
De ahora en adelante, administre Kong a través del loopback (comprueba el encabezado de solicitud apikey
):
export KONG_ADMIN_URL=http://localhost:8000/kadmin
export KONG_ADMIN_KEY={{thekeyabove}}
kong-incubator --yaml ..
Las opciones --admin-url
o --admin-key
se pueden usar sobre, o para tener prioridad:
export KONG_ADMIN_URL=http://localhost:8000/kadmin
kong-incubator --admin-key={{thekeyabove}} --yaml ..
En Kubernetes/OpenShift, elimine las rutas a 8001 y 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 ))
Las pruebas suponen que tiene la API Kong Admin ejecutándose en http://localhost:8001.
Si tiene docker-compose
disponible, puede ejecutar make dc
para obtener kongpose/ como un submódulo git e iniciarlo en segundo plano para realizar pruebas. Utilice make dc_rm
para detener y eliminar la pila, incluidos los volúmenes de las bases de datos.
Ejecute make
como atajo para otras tres reglas:
make test
crea .venvs/dev
e instala los requisitos, también dev. Para volver a ejecutar solo las pruebas fallidas, si las hay; de lo contrario, todas, utilice make retest
, que omite la instalación de requisitos (-dev). Ambos limpian los recursos Kong que crean.
make build
recrea .venvs/release
en cada ejecución, instala herramientas de compilación allí y compila fuentes y distribuciones de ruedas listas para publicar.
make install
instala el paquete desde el árbol fuente. No es necesario reinstalarlo después de editar el código fuente, ya que el paquete se instala editable.
Puede make --jobs
para ejecutar las reglas anteriores en paralelo, por lo tanto, en 3 núcleos de CPU.
Ejecute make pur
para actualizar los requisitos (-dev) de las versiones bloqueadas para las dependencias que los tienen.
Además, ejecute make {{tool}}
para black, flake8 o mypy. Las configuraciones para flake8
y mypy
, así como para pytest, están en sus propios archivos de configuración, ya que aún no son compatibles con pyproject.toml
, como black
.
Ejecute make clean
para eliminar los cachés .venvs/
, build/
, dist/
y del árbol de origen.
Consulte make help
para conocer todas las reglas:
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
Cordel incluido para cargar a través de HTTPS.
Para probar PyPI:
make publish_test
A PyPI
make publish_pypi