3scale API python client
Project description
3scale REST API client in Python
3Scale REST API client in a wrapper over the 3scale API.
Installing
Install and update using pip:
pip install 3scale-api
Or as a dependency using the pipenv
pipenv install 3scale-api
Usage
Client supports basic CRUD operations and it using the official 3scale API.
The API can be found at <https://yourdomain-admin.3scale.net>/p/admin/api_docs
Basic usage of the client:
from threescale_api import ThreeScaleClient, resources
from typing import List
client = ThreeScaleClient(url="myaccount.3scale.net", token="secret_token", ssl_verify=True)
# Get list of APIs/Services or any other resource
services: List[resources.Service] = client.services.list()
# Get service by it's name
test_service: resources.Service = client.services["test_service"] # or use: client.services.read_by_name(system_name)
# Get service by it's id
test_service: resources.Service = client.services[12345] # or use client.services.read(id)
# To get raw JSON response - you can use the fetch method - it takes the service id
raw_json: dict = client.services.fetch(12345)
# To create a new service (or any other resource), parameters are the same as you would provide by the documentation
new_service: resources.Service = client.services.create(system_name='my_testing_service', name="My Testing service")
# In order to update service you can either
client.services[123456].update(param="new_value")
# or
service: resources.Service = client.services[123456]
service['param'] = 'new_value'
service.update()
# To get a proxy config you can use
proxy: resources.Proxy = client.services['test_service'].proxy.read()
# To update the proxy you can either
proxy: resources.Proxy = client.services['test_service'].proxy.update(parameter_to_update='update')
# or
proxy_instance = client.services['test_service'].proxy.read()
proxy_instance['param'] = 'new_value'
proxy_instance.update()
# On the service you can access the:
service: resources.Service = client.services[123456]
service.proxy # The PROXY client
service.mapping_rules # mapping rules client
service.metrics # metrics
service.app_plans # application plans
# The proxy supports:
proxy = service.proxy.read()
proxy.promote(version=1, from_env="sandbox", to_env="production") # The promote operation
proxy.mapping_rules # The mapping rules
proxy.configs # proxy configurations client
proxy.policies # Policies defined for the API
Run the Tests
To run the tests you need to have installed development dependencies:
pipenv install --dev
and then run the pytest
:
pipenv run pytest -v
Integration tests configuration
To run the integration tests you need to set these env variables:
THREESCALE_PROVIDER_URL='https://example-admin.3scale.net'
THREESCALE_PROVIDER_TOKEN='<test-token>'
# OPTIONAL:
THREESCALE_MASTER_URL='https://master.3scale.net'
THREESCALE_MASTER_TOKEN='<test-master-token>'
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
3scale-api-0.35.2.tar.gz
(40.3 kB
view details)
Built Distribution
File details
Details for the file 3scale-api-0.35.2.tar.gz
.
File metadata
- Download URL: 3scale-api-0.35.2.tar.gz
- Upload date:
- Size: 40.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2cf929cb458a60b1d97e0749796e6060585f6b3f039292a813cd0b901f519547 |
|
MD5 | cf1c17619af0bf34891cf87f02364f43 |
|
BLAKE2b-256 | 045e137c8999cad90150f00e45c02afd6df60b7ec240f75124f63d54a062730a |
File details
Details for the file 3scale_api-0.35.2-py3-none-any.whl
.
File metadata
- Download URL: 3scale_api-0.35.2-py3-none-any.whl
- Upload date:
- Size: 54.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 48107d3af36f3069ec6172c379281cbdcfa053b65cd2cd7f8b3bfb94db8a9e42 |
|
MD5 | 4353d7375f0b35b9adf397ffda062bdc |
|
BLAKE2b-256 | 5b41cacf74e1af8286bf43a42a4d8d7d6de2d28666e6b8b2a65690696501d7ed |