REST API:staticResource Resource

REST API:staticResource Resource

From LongJump Support Wiki

REST API:staticResource Resource
Jump to: navigation, search

Manage Static Resources stored on the platform using the REST API.

Contents

Access Permissions

File:Lock-tiny.gif

Users that have the Use Development Features permission can use this resource. 

Get a List of all Static Resources

Method
GET
URI
https://na.longjump.com/networking/rest/staticResource
Response
<platform>
    <staticResource>
        <id>567rty789uio</id>
        <name>JSPsample</name>
        <resource_file_name>jsp.txt</resource_file_name>
        <size>613</size>
        <mime_type>text/plain</mime_type>
        <date_created>2010-11-12T13:14:15Z</date_created>
        <created_id type="USER"
         uri="https://{domain}/networking/rest/user/123qwe456rty"
         displayValue="John Public">123qwe456rty</created_id>
        <date_modified>2010-11-12T13:14:15Z</date_modified>
        <modified_id type="USER"
         uri="https://{domain}/networking/rest/user/123qwe456rty"
         displayValue="John Public">123qwe456rty</modified_id>
        </staticResource>
        ...
    <message>
        <code>0</code>
        <description>Success</description>
    </message>
    <recordCount>24</recordCount>
</platform>
See also: REST API:Error Codes

Get a Static Resource

Method
GET
URI
https://na.longjump.com/networking/rest/staticResource/{resourceId}?{query_parameters}
Query Parameters
  • getfile
  • If true, download the physical file
  • If false, return the XML descriptor only (default)
For more information, see: Specifying Query Parameters in REST APIs
Response
<message>
    <staticResource>
        <id>567rty789uio</id>
        <name>JSPsample</name>
        <resource_file_name>jsp.txt</resource_file_name>
        <size>613</size>
        <mime_type>text/plain</mime_type>
        <date_created>2010-11-12T13:14:15Z</date_created>
        <created_id type="USER"
         uri="https://{domain}/networking/rest/user/123qwe456rty"
         displayValue="John Public">123qwe456rty</created_id>
        <date_modified>2010-11-12T13:14:15Z</date_modified>
        <modified_id type="USER"
         uri="https://{domain}/networking/rest/user/123qwe456rty"
         displayValue="John Public">123qwe456rty</modified_id>
        </staticResource>
    <code>0</code>
    <description>Success</description>
    </message>
</platform>
See also: REST API:Error Codes

Add a Static Resource

Method
POST
URI
https://na.longjump.com/networking/rest/staticResource
Request
A multipart request with file part for the resource and an XML/JSON part with processing information.
Here's a sample request that loads a properties file.
Considerations
  • For a JSON payload, the name would be __json_data__, and the content-type would be application/json.
  • For the full program, see the Sample Http Client below.))
Content-Type: multipart/form-data; boundary=.............................103832778631715

--.............................103832778631715
Content-Disposition: form-data; name="__xml_data__";
Content-Type=application/xml;

<platform>
    <record>
        <name>JSPsample</name>
        <description>Simple JSP page.</description>
    </record>
</platform>

.............................103832778631715
Content-Disposition: form-data; name="file_part"; filename="message.properties"
Content-type: text/plain

<h1 align="center">Hello World!</h1>
.............................103832778631715--
Learn more: REST API:Multipart Request
Response
<platform>
    <message>
        <code>0</code>
        <description>Success</description>
        <id>...</id>   // ID of the added resource
    </message>
</platform>
See also: REST API:Error Codes

Update a Static Resource

Method
PUT
URI
https://na.longjump.com/networking/rest/staticResource/{resourceId}
Request
The format of the request is identical to that shown in Add a Static Resource.
Response
<platform>
    <message>
        <code>0</code>
        <description>Success</description>
        <id>...</id>   // ID of the updated resource
    </message>
</platform>
See also: REST API:Error Codes

Delete a Static Resource

Method
DELETE
URI
https://na.longjump.com/networking/rest/staticResource/{recordId}
Response
<platform>
    <message>
        <code>0</code>
        <description>Success</description>
    </message>
</platform>
See also: REST API:Error Codes

Fields

NameTypeAttributeRequired During AddDescriptionAdditional Information
id String Read Only Record Id
name String Read Only Static Resource name
description String Editable on Add/Update Description of content
document_id String Read Only
resource_file_name String Read Only
size Integer Read Only
mime_type String Read Only
date_created Data Read Only
created_id Lookup Read Only
date_modified Date Read Only
modified_id Lookup Read Only

Sample Http Client to Upload a Static Resource

The StaticResourceUploadClient demo program extends the REST API:BaseClient class to upload a static resource. With a couple of modifications, it can be used to do updates or load arbitrary file types.

File:thumbsup.gif

Tip: The REST_samples.zip file contains BaseClient, the utility class it uses, and extensions like this one that demonstrate REST operations.

package demo.rest;

import java.io.File;
import javax.ws.rs.core.MediaType;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.PutMethod;
import org.apache.commons.httpclient.methods.multipart.FilePart;
import org.apache.commons.httpclient.methods.multipart.MultipartRequestEntity;
import org.apache.commons.httpclient.methods.multipart.Part;
import org.apache.commons.httpclient.methods.multipart.StringPart;

/**
 * Load a static resource file.
 * Load a static resource file. This program extends demo.rest.BaseClient.java
 * which in turn makes use of demo.rest.BaseUtil.java.
 * <p>
 * Note:<br/>
 * This class uses the Apache commons HttpClient.
 * The Apache wink RestClient is generally more straightforward,
 * but multipart requests currently do not work when made using that client.
 */

public class StaticResourceUploadClient extends BaseClient
{
       
  public void execute(String cookieString)
  {
    String url = baseUrl + "/staticResource";
    //Use this for an update:
    // String url = baseUrl + "/staticResource/{id}";     // <--[1]
    String xml = "<platform>"
               + "<staticResource>"
                  + "<name>upload_test</name>"
                  + "<description>Test an API-driven upload</description>"
               + "</staticResource>"
               + "</platform>";
   
    try
    {
      // File part
      File file = new File("C:/testfiles/test.txt");
      FilePart fp = new FilePart("file_part", file);
      fp.setContentType(MediaType.TEXT_PLAIN);            // <--[3]
         //Use BaseUtil.mediaType() to set type based on file extension    
 
      // XML part
      // For JSON, use __json_data__ and APPLICATION_JSON
      StringPart sp = new StringPart("__xml_data__", xml);
      sp.setContentType(MediaType.APPLICATION_XML);        

      // Multipart wrapper
      final Part[] part = {fp, sp};        

      // Create the request
      HttpClient httpClient = new HttpClient();
      PostMethod httpMethod = new PostMethod(url);        // <--[2]
        // Use PutMethod for an update      

      // Set the response type (xml) and the session cookie.
      //(Had we logged in with HttpClient, the cookie would be handled
      // automatically. But since we let BaseClient do the log in and log out,
      // we need to tack on the cookie string here.)
      httpMethod.addRequestHeader("Cookie", cookieString);
      httpMethod.addRequestHeader("Accept", MediaType.APPLICATION_XML);
      httpMethod.setRequestEntity(
        new MultipartRequestEntity(part, httpMethod.getParams())
      );
 
      // Check status & echo response
      int status  = httpClient.executeMethod(httpMethod);
      String responseXml = httpMethod.getResponseBodyAsString();
      if ((status == 200) || (status == 201))
      {
        // 200=Successful GET, PUT, or DELETE. 201=Successful POST.      
        echoResponse(httpMethod.getResponseBodyAsStream());
      }
      else
      {
        echoStatus(status, responseXml);
      }
    }
    catch (ClientWebException webException)
    {
        echoResponse(webException);
    }
    catch (Exception e)
    {
      System.out.println(e.getMessage());
      e.printStackTrace();
    }
  }
       
  public static void main(String[] args)
  {
    StaticResourceUploadClient client = new StaticResourceUploadClient();
    String cookieString = client.login();
    client.execute(cookieString);
    client.logout();
  }    
}
Notes:
  • [1,2] - Change these lines to update an existing resource
  • [3] - Use the BaseUtil mediaType() method to automatically set the content type appropriate for the file.
Personal tools