Site Tools


guides:ws_payloads_delete_payload

This is an old revision of the document!


payloads:delete_payload

The payloads web service is a REST structured service that derives its functionality based on syntax used when calling the web service. To delete a payload from a repository, call the payloads web service with a repository name and the payload file name.

Important: The payload must be locked prior to retrieving it. Please note that the method being used is DELETE.


Purpose: Delete A Payload From A Repository.

Request Endpoint

Method URL
DELETE https://apex-prd.certna.org/APEX/Service/APEXPublicServer.svc/payloads/{repository}/{payload_name}

Variables:

Variable Usage Description
{repository} Required The name of the repository
{payload_name} Required The name of the payload

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/retrieve/standard_testagent1-202007140415-00025.1.1_200723151419729.xml

Sample Response (Note: Most of the Base64 image text was removed for readability.)

Status Code: 200

{
    "result": "true"
}

OR

Status Code: 500 (When an error occurs.)

{
    "Exception": {
        "Code": "PayloadFileLockError",
        "Message": "The payload standard_testagent1-202007140415-00025.1.1_200723151419729.xml not locked."
    }
}

Comment 1:

Following is a C# / .NET sample code snippet that shows how to call the web services associated with deleting a payload.

The payloads:delete_payload web service is used as part of the retrieve payload process flow.

Payloads that are 'Retrieved' must be locked before they can be retrieved. If the retrieval is successful and any validation requirements are satisfied, then the remote payload can be deleted with the payloads:delete_payload web service, otherwise the payload can be unlocked using the payloads:lockunlock_payload web service and the callers application will determine the next steps in their flow.

private bool DeleteRemoteFile(string strRepositoryType, string strFileName)
{
    tbMessageLine.Text = "Deleting remote file " + strFileName;
 
    bool rc = false;
 
    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 the Login web service for more detail
 
    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://apex-prd.certna.org/APEX/Service/APEXPublicServer.svc/payloads/" + strRepositoryType + "/" + strFileName; 
 
        client = new RestClient(strURL);
        request = new RestRequest(Method.DELETE);
 
        request.AddHeader("Cache-Control", "no-cache");
        request.AddHeader("access_token", token);
        response = client.Execute(request);
 
        if (response.IsSuccessful)
        {
            tbMessageLine.Text = "Remote file " + strFileName + " successfully retrieved. Remote file deleted.";
            rc = true;
        }
        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 (rc);
}

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

guides/ws_payloads_delete_payload.1598312275.txt.gz · Last modified: by brett.zamora