Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/shinesolutions/pythonaem
Python client for Adobe Experience Manager (AEM) API
https://github.com/shinesolutions/pythonaem
aem aem-opencloud api-client python
Last synced: about 1 month ago
JSON representation
Python client for Adobe Experience Manager (AEM) API
- Host: GitHub
- URL: https://github.com/shinesolutions/pythonaem
- Owner: shinesolutions
- License: apache-2.0
- Created: 2016-10-28T06:44:47.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2024-05-07T04:40:46.000Z (8 months ago)
- Last Synced: 2024-08-16T16:49:01.230Z (4 months ago)
- Topics: aem, aem-opencloud, api-client, python
- Language: Python
- Size: 104 KB
- Stars: 5
- Watchers: 13
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
[![Build Status](https://github.com/shinesolutions/pythonaem/workflows/CI/badge.svg)](https://github.com/shinesolutions/pythonaem/actions?query=workflow%3ACI)
[![Published Version](https://badge.fury.io/py/pythonaem.svg)](https://pypi.org/project/pythonaem/)
[![Vulnerability Scanning Status](https://snyk.io/test/github/shinesolutions/pythonaem/badge.svg)](https://snyk.io/test/github/shinesolutions/pythonaem)PythonAEM
---------PythonAEM is a Python client for [Adobe Experience Manager (AEM)](http://www.adobe.com/au/marketing-cloud/enterprise-content-management.html) API.
It is written on top of [swaggeraem](https://github.com/shinesolutions/swagger-aem/blob/master/clients/python/README.md) and provides resource-oriented API and convenient response handling.Learn more about PythonAEM:
* [Installation](https://github.com/shinesolutions/pythonaem#installation)
* [Usage](https://github.com/shinesolutions/pythonaem#usage)
* [Result Model](https://github.com/shinesolutions/pythonaem#result)
* [Error Handling](https://github.com/shinesolutions/pythonaem#error-handling)
* [Testing](https://github.com/shinesolutions/pythonaem#testing)
* [Versions History](https://github.com/shinesolutions/pythonaem/blob/master/docs/versions.md)pythonaem is part of [AEM OpenCloud](https://aemopencloud.io) platform but it can be used as a stand-alone.
Installation
------------pip3 install pythonaem
Usage
-----Initialise client:
from pythonaem import PythonAem
conf = {
'username': 'admin',
'password': 'admin',
'protocol': 'http',
'host': 'localhost',
'port': 4502,
'debug': True,
'verify_ssl': True,
'ssl_ca_cert': None,
'cert_file': None,
'key_file': None
}
client = PythonAem(conf)Aem:
aem = client.aem()
result = aem.get_aem_health_check({
'tags': 'shallow',
'combine_tags_or': 'false',
})Flush agent:
flush_agent = client.flush_agent('author', 'some-flush-agent')
# create or update flush agent
result = flush_agent.create_update('Some Flush Agent Title', 'Some flush agent description', 'http://somehost:8080')# check flush agent's existence
result = flush_agent.exists()# Disable flush agent
result = flush_agent.disable()# Enable flush agent
result = flush_agent.enable()# delete flush agent
result = flush_agent.delete()Replication agent:
replication_agent = client.replication_agent('author', 'some-replication-agent')
# create or update replication agent
result = replication_agent.create_update('Some Replication Agent Title', 'Some Replication agent description', 'http://somehost:8080')# check replication agent's existence
result = replication_agent.exists()# Disable replication agent
result = replication_agent.disable()# Enable replication agent
result = replication_agent.enable()# delete replication agent
result = replication_agent.delete()Result
------Each of the above method calls returns a [Result](https://github.com/shinesolutions/pythonaem/blob/master/pythonaem/result.py), which contains message, [Response](https://github.com/shinesolutions/pythonaem/blob/master/pythonaem/response.py), and data payload. For example:
flush_agent = client.flush_agent('author', 'some-inexisting-flush-agent')
result = flush_agent.delete()
print(result.message)
print(result.response.status_code)
print(result.response.body)
print(result.response.headers)
print(result.data)Error Handling
--------------flush_agent = client.flush_agent('author', 'some-inexisting-flush-agent')
try:
result = flush_agent.delete()
except Exception as error:
self.assertEqual(error.message, 'Flush agent some-inexisting-flush-agent not found on author')Testing
-------Integration tests require an AEM instance with [Shine Solutions AEM Health Check](https://github.com/shinesolutions/aem-healthcheck) package installed.
By default it uses AEM running on http://localhost:4502 with `admin` username and `admin` password. AEM instance parameters can be configured using environment variables `aem_protocol`, `aem_host`, `aem_port`, `aem_username`, and `aem_password`.