The payloads web service is a REST structured service that derives its functionality based on syntax used when calling the web service. When including the repository name in the payloads web service call, a list of file names will be returned along with the date the file was created, the lock status of the file, and the date the file was last modified. A variety of filters are available and are documented below.
Purpose: Get Payload File Names For Selected Repository
Request Endpoint
Method | URL |
---|---|
GET | https://apex-prd.certna.org/APEX/Service/APEXPublicServer.svc/payloads/{repository}?{filter}&page_size={page_size}&page={page_index}&order={order} |
Variables:
Variable | Usage | Description |
---|---|---|
{repository} | Required | The name of the repository |
Arguments:
Variable | Usage | Description |
---|---|---|
{filter} | Optional | Collection of {column_name}:{comparator}:{value} separated by ';' symbol. |
{page_size} | Optional | A positive integer representing the number of items returned for a single page of results. |
{page} | Optional | A positive integer representing the page index of the result set. First index is 0. |
{order} | Optional | Sort order of the returned data. Format {column_name}:{sort_type}. Valid {sort_type) Ascending or Descending |
Filter Usage:
Column Name | Comparators | Allowed Values |
---|---|---|
FILE_NAME | Equal, Contains, StartsWith, EndsWith | Any string data. |
LOCK_STATUS | Equal | Locked, Unlocked, All |
DATE_CREATED | Equal, Greater, GreaterEqual, Less, LessEqual | Any valid date in format MM-dd-yyyy |
DATE_MODIFIED | Equal, Greater, GreaterEqual, Less, LessEqual | Any valid date in format MM-dd-yyyy |
Request Body
N/A
Request Headers
Key | Value |
---|---|
access_token | {soft-token} |
JSON Request Parameters
N/A
Notes:
Any condition that results in an unsuccessful call to the payloads web service will produce a JSON formatted response with a code and message property populated.
Sample Request
Endpoint:
https://apex-prd.certna.org/APEX/Service/APEXPublicServer.svc/payloads/processed? filter=date_created:GreaterEqual:9-1-2019;date_created:Less:9-30-2019;date_modified:GreaterEqual:9-1-2019;date_modified:Less:9-30-2019;file_name:Contains:user-033;lock_status:Equal:Unlocked&page_size=10&page=1&order=file_name:Descending
Sample Response
Status Code: 200
{ "result": [ { "created": "2019-09-03 16:56:04", "file_name": "standard_user-033-190903161430419-00001.1.1_190903165601809", "lock_status": "Unlocked", "modified": "2019-09-03 16:56:18" }, { "created": "2019-09-03 16:56:04", "file_name": "standard_user-033-190903161430419-00002.1.1_190903165601809", "lock_status": "Unlocked", "modified": "2019-09-03 16:56:23" }, { "created": "2019-09-03 16:56:04", "file_name": "standard_user-033-190903161430419-00003.1.1_190903165601809", "lock_status": "Unlocked", "modified": "2019-09-03 16:56:24" }, { "created": "2019-09-03 16:56:04", "file_name": "standard_user-033-190903161430419-00004.1.1_190903165601809", "lock_status": "Unlocked", "modified": "2019-09-03 16:56:17" }, { "created": "2019-09-03 16:58:54", "file_name": "standard_user-033-190903161430419-00050.1.1_190903165852480", "lock_status": "Unlocked", "modified": "2019-09-03 16:59:08" } ] }
OR
Status Code: 500 (When an error occurs.)
{ "Exception": { "Code": "Undefined", "Message": "Invalid filter condition field name - \"lock_value\"" } }
Comment 1:
Following is a C# / .NET sample code snippet that shows how to call the payloads:get_repository_file_names web service.
This snippet was derived from the Web Service Toolbox that is available on the CeRTNA Wiki. The sample application is intended for easy to read demonstration purposes and not production quality code. The Web Service Toolbox application is documented, on the CeRTNA Wiki, to aid in understanding the code snippet shown below.
private string[] getRepositoryFileNames(string strRepositoryName) { string[] strFileNames = null; RestClient client = null; RestRequest request = null; IRestResponse response = null; string strURL = "https://apex-prd.certna.org/APEX/Service/APEXPublicServer.svc/user/login"; // Password has to be hashed. // New convention uses a Salt value from the user record // See Login documentation for more details string strSalt = GetSalt(tbUserName.Text); string strPassword = tbPassword.Password.ToString(); string strHashedPassword = HashPassword(strPassword, strSalt); string strParms = "{\n\t\"user_name\" : \""; strParms += tbUserName.Text; strParms += "\",\n\t\"password\" : \""; strParms += strHashedPassword; strParms += "\"\n}"; client = new RestClient(strURL); request = new RestRequest(Method.POST); request.AddHeader("Cache-Control", "no-cache"); request.AddHeader("Content-Type", "application/json"); request.AddParameter("Login", strParms, ParameterType.RequestBody); response = client.Execute(request); if (response.IsSuccessful) { var jsonResult1 = JsonConvert.DeserializeObject<dynamic>(response.Content); string token = jsonResult1.access_token; strURL = null; client = null; request = null; response = null; strURL = "https://" + getHost() + "/APEX/Service/APEXPublicServer.svc/payloads/" + strRepositoryName; client = new RestClient(strURL); request = new RestRequest(Method.GET); request.AddHeader("Cache-Control", "no-cache"); request.AddHeader("access_token", token); response = client.Execute(request); if (response.IsSuccessful) { JObject joResponse = JObject.Parse(response.Content); JArray array = (JArray)joResponse["result"]; strFileNames = new string[array.Count]; for (int i = 0; i < array.Count; i++) { strFileNames[i] = (String)array[i]["file_name"]; } } else { var jsonResult2 = JsonConvert.DeserializeObject<dynamic>(response.Content); string strMessage = jsonResult2.Exception.Message; tbMessageLine.Text = strMessage; } } else { var jsonResult2 = JsonConvert.DeserializeObject<dynamic>(response.Content); tbMessageLine.Text = jsonResult2.ToString(); } return (strFileNames); }
Comment 2:
A nice utility for experimenting with web service calls is POSTMAN. You can download a free version of POSTMAN from the following URL: https://www.getpostman.com/apps