Skip to content

api7/python-sdk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python SDK for Apache APISIX

More detailed documentation please refer to:

Synopsis

from apisix import A6Client

# connect to Apache APISIX admin server
client = A6Client('http://apisix.iresty.com')

# create new upstream
# https://github.com/apache/incubator-apisix/blob/master/doc/architecture-design-cn.md#upstream
upstream_id = 1
ok = client.new_upstream(upstream_id = upstream_id, type = 'roundrobin',
                         nodes = {"127.0.0.1:80": 1, "127.0.0.2:80": 2, "foo.com:80": 0}
                        )

# update upstream info
client.update_upstream(upstream_id = upstream_id,
                        type = 'chash',
                        key = 'remote_addr',
                        nodes = {"127.0.0.1:8000": 1, "foo.com:80": 1},
                        checks = {
                            "active": {
                                "http_path": "/status",
                                "host": "foo.com",
                                "healthy": {
                                    "interval": 2,
                                    "successes": 1
                                },
                                "unhealthy": {
                                    "interval": 1,
                                    "http_failures": 2
                                }
                            }
                        })

# create new route
# https://github.com/apache/incubator-apisix/blob/master/doc/admin-api-cn.md#route
route_id = 1
ok = self.client.new_route(route_id = route_id, uris = ['/test.html'], upstream_id = upstream_id)

# update route to 
client.update_route(route_id = route_id,
                    uris = ['/test.html'],
                    hosts = ['foo.com', '*.bar.com'],
                    plugins = {
                        'limit-count': {
                            'count': 2,
                            'time_window': 60,
                            'rejected_code': 503,
                            'key': 'remote_addr'
                        },
                        'prometheus': {}
                    }
                    )

Prerequisites

You need to install pip first.

Then install packages as:

cd apache-apisix-python-sdk
make init

Run test cases

cd apache-apisix-python-sdk
make clean test

About

Python SDK for Apache APISIX

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published