Moesif API Lib for Python
Project description
MoesifApi Lib for Python
This SDK uses the Requests library and will work for Python 2.7 — 3.5.
If you are using Django as your platform, we have moesifapi-python middleware, you can use that middleware directly.
Check out Moesif's Developer Documentation and Python API Reference to learn more
How to install:
pip install moesifapi
How to use:
The code uses Python packages named requests, jsonpickle and dateutil. After having resolved the dependencies, you can easily use the SDK following these steps.
Your Moesif Application Id can be found in the Moesif Portal. After signing up for a Moesif account, your Moesif Application Id will be displayed during the onboarding steps.
You can always find your Moesif Application Id at any time by logging into the Moesif Portal, click on the top right menu, and then clicking Installation.
Create Event
from __future__ import print_function
from moesifapi.moesif_api_client import *
from moesifapi.models import *
client = MoesifAPIClient(my_application_id)
api_client = client.api
# Note: we recommend sending all API Calls via MVC framework middleware.
req_headers = APIHelper.json_deserialize(""" {
"Host": "api.acmeinc.com",
"Accept": "*/*",
"Connection": "Keep-Alive",
"User-Agent": "Dalvik/2.1.0 (Linux; U; Android 5.0.2; C6906 Build/14.5.A.0.242)",
"Content-Type": "application/json",
"Content-Length": "126",
"Accept-Encoding": "gzip"
} """)
req_body = APIHelper.json_deserialize( """{
"items": [
{
"type": 1,
"id": "fwfrf"
},
{
"type": 2,
"id": "d43d3f"
}
]
}""")
rsp_headers = APIHelper.json_deserialize(""" {
"Date": "Tue, 23 Aug 2019 23:46:49 GMT",
"Vary": "Accept-Encoding",
"Pragma": "no-cache",
"Expires": "-1",
"Content-Type": "application/json; charset=utf-8"
"Cache-Control": "no-cache"
} """)
rsp_body = APIHelper.json_deserialize( """{
"Error": "InvalidArgumentException",
"Message": "Missing field field_a"
}""")
metadata = APIHelper.json_deserialize("""{
"field1": "foo",
"field2": "bar"
}""")
event_req = EventRequestModel(time = "2019-09-09T04:45:42.914",
uri = "https://api.acmeinc.com/items/reviews/",
verb = "PATCH",
api_version = "1.1.0",
ip_address = "61.48.220.123",
headers = req_headers,
body = req_body)
event_rsp = EventResponseModel(time = "2019-09-09T04:45:42.914",
status = 500,
headers = rsp_headers,
body = rsp_body)
event_model = EventModel(request = event_req,
response = event_rsp,
user_id = "12345",
company_id = "67890",
session_token = "23jdf0owekfmcn4u3qypxg09w4d8ayrcdx8nu2ng]s98y18cx98q3yhwmnhcfx43f",
metadata = metadata)
# Perform the API call through the SDK function
api_client.create_event(event_model)
api_client.create_event(my_api_event_model)
Update User
The api also let you update a user profile with custom metadata. The user_id is a required fields, all other fields are optional.
metadata = APIHelper.json_deserialize(""" {
"email": "johndoe@email.com",
"name": "John Doe",
"custom": "testdata"
} """)
user_model = UserModel(
user_id = '12345',
company_id = '67890',
modified_time = datetime.utcnow(),
metadata = metadata,
campaign=CampaignModel(utm_source="Newsletter", utm_medium="Email"))
# Perform the API call through the SDK function
api_client.update_user(user_model)
Update Company
The api also let you update a company information with custom metadata. The company_id is a required field, all other fields are optional.
metadata = APIHelper.json_deserialize(""" {
"email": "pythonapiuser@email.com",
"name": "pythonapiuser",
"location": "United States"
} """)
company_model = CompanyModel(
company_id='67890',
modified_time=datetime.utcnow(),
metadata=metadata,
campaign=CampaignModel(utm_source="Adwords", utm_medium="Twitter"))
# Perform the API call through the SDK function
self.controller.update_company(company_model)
How to test:
You can test the SDK with automatically generated test cases. unittest is used as the testing framework and nose is used as the test runner. You can run the tests as follows:
- Manually clone the git repo
- From terminal/cmd navigate to the root directory of the SDK.
- Invoke 'pip install -r requirements.txt'
- Add your own application id to 'test/controllers/controller_test_base'
- Invoke 'nosetests tests/controllers/test_api_controller.py'
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for moesifapi-1.3.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0f0064214ff73c704fd2a1228332d20630097eabb45d9a66b322ee8e4864154e |
|
MD5 | bd6633566b3c59758676e78068cd8e2c |
|
BLAKE2b-256 | 053edc2e2ad80b5d27265c68b6de29f12189e6ad4597c5a0dd17efc56c1f0a68 |