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.4.tar.gz (43.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

3scale_api-0.35.4-py3-none-any.whl (58.0 kB view details)

Uploaded Python 3

File details

Details for the file 3scale_api-0.35.4.tar.gz.

File metadata

  • Download URL: 3scale_api-0.35.4.tar.gz
  • Upload date:
  • Size: 43.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for 3scale_api-0.35.4.tar.gz
Algorithm Hash digest
SHA256 f475e3730e4b3d1e19cd62fa7e115118e4935c1c7163cbacdbdb454c62118a45
MD5 19e64be04be5d848491c4f8bb70b89c5
BLAKE2b-256 d75f5188a4a90450a706e6205f39fa63d8cb8d3bcd1cc76f16fff649bb5b1f88

See more details on using hashes here.

Provenance

The following attestation bundles were made for 3scale_api-0.35.4.tar.gz:

Publisher: release.yml on 3scale-qe/3scale-api-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file 3scale_api-0.35.4-py3-none-any.whl.

File metadata

  • Download URL: 3scale_api-0.35.4-py3-none-any.whl
  • Upload date:
  • Size: 58.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for 3scale_api-0.35.4-py3-none-any.whl
Algorithm Hash digest
SHA256 b0e237a8e2cbc91098330089892699900c766c00760c70c6431c7b1bae768e28
MD5 62db81fd8eadf15405112d43f677c2a2
BLAKE2b-256 8796505b70ca913a1b94a22299a95e07403fed0c760e0ade06dd44d9f865814b

See more details on using hashes here.

Provenance

The following attestation bundles were made for 3scale_api-0.35.4-py3-none-any.whl:

Publisher: release.yml on 3scale-qe/3scale-api-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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