Skip to main content

3scale API python client

Project description

3scale REST API client in Python

3Scale REST API client in a wrapper over the 3scale API.

lint & smoke

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


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)

Uploaded Source

Built Distribution

3scale_api-0.35.2-py3-none-any.whl (54.0 kB view details)

Uploaded Python 3

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

Hashes for 3scale-api-0.35.2.tar.gz
Algorithm Hash digest
SHA256 2cf929cb458a60b1d97e0749796e6060585f6b3f039292a813cd0b901f519547
MD5 cf1c17619af0bf34891cf87f02364f43
BLAKE2b-256 045e137c8999cad90150f00e45c02afd6df60b7ec240f75124f63d54a062730a

See more details on using hashes here.

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

Hashes for 3scale_api-0.35.2-py3-none-any.whl
Algorithm Hash digest
SHA256 48107d3af36f3069ec6172c379281cbdcfa053b65cd2cd7f8b3bfb94db8a9e42
MD5 4353d7375f0b35b9adf397ffda062bdc
BLAKE2b-256 5b41cacf74e1af8286bf43a42a4d8d7d6de2d28666e6b8b2a65690696501d7ed

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page