# Python client for Workday
This is a Python client (2.7 or 3.4+) for communicating with one of the Workday XML/SOAP APIs.
[](https://badge.fury.io/py/workday)
[](https://github.com/ambv/black)
# Features
This client
* facilitates the authentication to a Workday SOAP API (Workday Web Services) and the parsing of data.
* supports Anonymous, Basic HTTP and WS-Security (which is the prefered configuration in Workday)
* allows the setup of multiple WWS endpoints
# Configuring WSDLs
The first parameter of the `WorkdayClient` constructor is a dictionary. This dictinary contains all the APIs you want to access and the endpoints of them.
The key used in the dictionary will then become a *property* of the client instance with the methods for that API.
```python
import workday
apis = {
'talent': 'https://workday.com/tenant/434$sd.xml',
'hcm': 'https://workday.com/tenant/hcm$sd.xml'
}
client = workday.WorkdayClient(
wsdls=apis,
authentication=...
)
users = client.hcm.Get_Users()
```
Any calls to an API method will return an instance of `workday.client.WorkdayResponse`. If you want to page results, the paging data is in the response.
The data will be in the `data` property of any API response.
# Authentication Examples
All authentication methods are in the `workday.auth` module and the instance of them should be passed to the `WorkdayClient` constructor as the `authentication` argument.
## No authentication
```python
from workday.auth import AnonymousAuthentication
anon = AnonymousAuthentication()
client = workday.WorkdayClient(
authentiation=anon,
...
)
```
## WS-Security username/password
```python
from workday.auth import WsSecurityCredentialAuthentication
auth = WsSecurityCredentialAuthentication('my_user@tenant_name', 'mypassword')
client = workday.WorkdayClient(
authentiation=auth,
...
)
```
## WS-Security X509-only authentication
```python
from workday.auth import WsSecurityCertificateAuthentication
auth = WsSecurityCertificateAuthentication('/path/to/private.key', '/path/to/public.key')
client = workday.WorkdayClient(
authentiation=auth,
...
)
```
## WS-Security X509-only signed credentials (Recommended by Workday)
```python
from workday.auth import WsSecurityCertificateCredentialAuthentication
auth = WsSecurityCertificateCredentialAuthentication(
'user@tenant',
'password',
'/path/to/private.key',
'/path/to/public.key')
client = workday.WorkdayClient(
authentiation=auth,
...
)
```
# Example
This simple example returns a list of dictionaries back from the Workday API for each configured language.
```python
import workday
from workday.auth import WsSecurityCredentialAuthentication
client = workday.WorkdayClient(
wsdls={'talent': 'https://workday.com/tenant/434$sd.xml'},
authentication=WsSecurityCredentialAuthentication(config['user'], config['password']),
)
print(client.talent.Get_Languages().data)
```
# Credits
This module was written by Anthony Shaw at Dimension Data
# Contributions
Always welcome. See CONTRIBUTING.rst
=======
History
=======
0.2.0 (2018-06-22)
------------------
* WS-Security support
* Protected WSDL support
* Paging support
0.1.0 (2018-06-22)
------------------
* First release on PyPI.
* Template for Talent API (SOAP) method execution
This is a Python client (2.7 or 3.4+) for communicating with one of the Workday XML/SOAP APIs.
[](https://badge.fury.io/py/workday)
[](https://github.com/ambv/black)
# Features
This client
* facilitates the authentication to a Workday SOAP API (Workday Web Services) and the parsing of data.
* supports Anonymous, Basic HTTP and WS-Security (which is the prefered configuration in Workday)
* allows the setup of multiple WWS endpoints
# Configuring WSDLs
The first parameter of the `WorkdayClient` constructor is a dictionary. This dictinary contains all the APIs you want to access and the endpoints of them.
The key used in the dictionary will then become a *property* of the client instance with the methods for that API.
```python
import workday
apis = {
'talent': 'https://workday.com/tenant/434$sd.xml',
'hcm': 'https://workday.com/tenant/hcm$sd.xml'
}
client = workday.WorkdayClient(
wsdls=apis,
authentication=...
)
users = client.hcm.Get_Users()
```
Any calls to an API method will return an instance of `workday.client.WorkdayResponse`. If you want to page results, the paging data is in the response.
The data will be in the `data` property of any API response.
# Authentication Examples
All authentication methods are in the `workday.auth` module and the instance of them should be passed to the `WorkdayClient` constructor as the `authentication` argument.
## No authentication
```python
from workday.auth import AnonymousAuthentication
anon = AnonymousAuthentication()
client = workday.WorkdayClient(
authentiation=anon,
...
)
```
## WS-Security username/password
```python
from workday.auth import WsSecurityCredentialAuthentication
auth = WsSecurityCredentialAuthentication('my_user@tenant_name', 'mypassword')
client = workday.WorkdayClient(
authentiation=auth,
...
)
```
## WS-Security X509-only authentication
```python
from workday.auth import WsSecurityCertificateAuthentication
auth = WsSecurityCertificateAuthentication('/path/to/private.key', '/path/to/public.key')
client = workday.WorkdayClient(
authentiation=auth,
...
)
```
## WS-Security X509-only signed credentials (Recommended by Workday)
```python
from workday.auth import WsSecurityCertificateCredentialAuthentication
auth = WsSecurityCertificateCredentialAuthentication(
'user@tenant',
'password',
'/path/to/private.key',
'/path/to/public.key')
client = workday.WorkdayClient(
authentiation=auth,
...
)
```
# Example
This simple example returns a list of dictionaries back from the Workday API for each configured language.
```python
import workday
from workday.auth import WsSecurityCredentialAuthentication
client = workday.WorkdayClient(
wsdls={'talent': 'https://workday.com/tenant/434$sd.xml'},
authentication=WsSecurityCredentialAuthentication(config['user'], config['password']),
)
print(client.talent.Get_Languages().data)
```
# Credits
This module was written by Anthony Shaw at Dimension Data
# Contributions
Always welcome. See CONTRIBUTING.rst
=======
History
=======
0.2.0 (2018-06-22)
------------------
* WS-Security support
* Protected WSDL support
* Paging support
0.1.0 (2018-06-22)
------------------
* First release on PyPI.
* Template for Talent API (SOAP) method execution
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
workday-0.2.0.tar.gz
(9.8 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file workday-0.2.0.tar.gz.
File metadata
- Download URL: workday-0.2.0.tar.gz
- Upload date:
- Size: 9.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e802299cda735838c89a823ef64570c7fe6a101df8f41bf17c97bb68b1de5c70
|
|
| MD5 |
0e23ba74ca7dc5f642e505eff5e3e6cc
|
|
| BLAKE2b-256 |
0827fe5e0a9b2a5909865e6dc39893fb2a237caad419ea9ad870869695b249ae
|
File details
Details for the file workday-0.2.0-py2.py3-none-any.whl.
File metadata
- Download URL: workday-0.2.0-py2.py3-none-any.whl
- Upload date:
- Size: 6.9 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e788204d50b9ea0bebb669637a88652f8ce66471c28dee9dfea32cf04627513c
|
|
| MD5 |
7a6e167a000b5a9d1434b240154adb0b
|
|
| BLAKE2b-256 |
8380ed6e67d624c1355514bb5bfa3e0cd8f7a8d37cc28ea49f76473c0dd13dba
|