Files and Libraries

C Client Library

Created March 4, 2024

The C module generates the source code for the ANSI-C-compatible data structures and (de)serialization functions that can be used in conjunction with libxml2 to (de)serialize the REST resources as they are represented as XML data.

The generated C source code depends on the XML Reader API and the XML Writer API as well as the <time.h>, <string.h>, and <stdlib.h> C standard libraries.

C Example
#include <edc-apis-client.c>
//...

xmlTextWriterPtr writer = ...; //set up the writer to the url.
edc_apis_client_edc_accountCreator *request_element = ...;
xmlTextReaderPtr reader = ...; //set up the reader to the url.
edc_apis_client_edc_account *response_element = ...;
//set up the edc_apis_client_edc_accountCreator...
xml_write_edc_apis_client_edc_accountCreator(writer, request_element);
response_element = xml_read_edc_apis_client_edc_account(reader);

//handle the response as needed...

//free the edc_apis_client_edc_accountCreator
free_edc_apis_client_edc_accountCreator(request_element);
//free the edc_apis_client_edc_account
free_edc_apis_client_edc_account(response_element);
    

Files
name size description
edc-apis-client.c 3.27M

The C module generates the source code for the ANSI-C-compatible data structures and (de)serialization functions that can be used in conjunction with libxml2 to (de)serialize the REST resources as they are represented as XML data.

The generated C source code depends on the XML Reader API and the XML Writer API as well as the <time.h>, <string.h>, and <stdlib.h> C standard libraries.

C Example
#include <edc-apis-client.c>
//...

xmlTextWriterPtr writer = ...; //set up the writer to the url.
edc_apis_client_edc_accountCreator *request_element = ...;
xmlTextReaderPtr reader = ...; //set up the reader to the url.
edc_apis_client_edc_account *response_element = ...;
//set up the edc_apis_client_edc_accountCreator...
xml_write_edc_apis_client_edc_accountCreator(writer, request_element);
response_element = xml_read_edc_apis_client_edc_account(reader);

//handle the response as needed...

//free the edc_apis_client_edc_accountCreator
free_edc_apis_client_edc_accountCreator(request_element);
//free the edc_apis_client_edc_account
free_edc_apis_client_edc_account(response_element);
    
enunciate-common.c 39.68K Common code needed for all projects.

C# Client Library

Created March 4, 2024

The C# client-side library defines the classes that can be (de)serialized to/from XML. This is useful for accessing the HTTP resources that are published by this application.

C# Resource Example
//read a resource from a REST url
Uri uri = new Uri(...);

XmlSerializer s = new XmlSerializer(
  typeof( byte[] )
);

  //Create the request object
WebRequest req = WebRequest.Create(uri);
WebResponse resp = req.GetResponse();
Stream stream = resp.GetResponseStream();
TextReader r = new StreamReader( stream );

byte[] result = (byte[]) s.Deserialize( r );

//handle the result as needed...
    

Files
name size description
edc-apis-client-csharp-xml-client.zip 35.11K The C# source code for the C# client library.

edc.xsd

Created March 4, 2024

Files
name size description
edc.xsd 128.96K  

esf.xsd

Created March 4, 2024

Files
name size description
esf.xsd 11.77K  

GWT JSON Overlay

Created March 4, 2024

The Google Web Toolkit JSON Overlay library provides the JSON Overlays that can be used to access the Web service API for this application.

JSON Overlay Example
String url = ...;
RequestBuilder request = new RequestBuilder(RequestBuilder.GET, url);
request.sendRequest(null, new RequestCallback() {
  public void onResponseReceived(Request request, Response response) {
    if (200 == response.getStatusCode()) {
      //handle the successful data...
      AllowedCertificate data = AllowedCertificate.fromJson(response.getText());
      //handle the AllowedCertificate...
    }
    else {
      //handle the error...
    }
  }

  public void onError(Request request, Throwable throwable) {
    //handle the error...
  }
});
    

Files
name size description
edc-apis-client-gwt-json-overlay.jar 118.56K The sources for the GWT JSON overlay.

Java JSON Client Library

Created March 4, 2024

The Java client-side library is used to provide the set of Java objects that can be serialized to/from JSON using Jackson. This is useful for accessing the JSON REST endpoints that are published by this application.

Resources Example (Raw JAXB)
java.net.URL url = new java.net.URL(baseURL + "/allowedCertificates");
ObjectMapper mapper = new ObjectMapper();
java.net.URLConnection connection = url.openConnection();
connection.setDoOutput(true);
connection.connect();

mapper.writeValue(connection.getOutputStream(), allowedCertificateCreator);
AllowedCertificate result = (AllowedCertificate) mapper.readValue( connection.getInputStream(), AllowedCertificate.class );
//handle the result as needed...
    
Resources Example (Jersey client)
javax.ws.rs.client.Client client = javax.ws.rs.client.ClientBuilder.newClient();

AllowedCertificate result = client.target(baseUrl + "/allowedCertificates")
  .post(javax.ws.rs.client.Entity.entity(allowedCertificateCreator, "application/json"), AllowedCertificate.class);

//handle the result as needed...
    

Files
name size description
edc-apis-client-json-client-json-sources.jar 115.34K The sources for the Java JSON client library.

Java XML Client Library

Created March 4, 2024

The Java client-side library is used to access the Web service API for this application using Java.

The Java client-side library is used to provide the set of Java objects that can be serialized to/from XML using JAXB. This is useful for accessing the resources that are published by this application.

Resources Example (Raw JAXB)
java.net.URL url = new java.net.URL(baseURL + "/accounts");
JAXBContext context = JAXBContext.newInstance( byte[].class, byte[].class );
java.net.URLConnection connection = url.openConnection();
connection.setDoOutput(true);
connection.connect();

Unmarshaller unmarshaller = context.createUnmarshaller();
Marshaller marshaller = context.createMarshaller();
marshaller.marshal(accountCreator, connection.getOutputStream());
Account result = (Account) unmarshaller.unmarshal( connection.getInputStream() );
//handle the result as needed...
    
Resources Example (Jersey client)
javax.ws.rs.client.Client client = javax.ws.rs.client.ClientBuilder.newClient();

Account result = client.target(baseUrl + "/accounts")
  .post(javax.ws.rs.client.Entity.entity(accountCreator, "application/xml"), Account.class);

//handle the result as needed...
    

Files
name size description
edc-apis-client.jar 160.07K The binaries for the Java XML client library.
edc-apis-client-xml-sources.jar 139.93K The sources for the Java XML client library.

JavaScript Client Library

Created March 4, 2024

The JavaScript client-side library defines classes that can be (de)serialized to/from JSON. This is useful for accessing the resources that are published by this application, but only those that produce a JSON representation of their resources (content type "application/json").

The library uses ES6 class syntax which has limited support. See MDN and the ES6 Compatibility Table for more details.

The library contains a UMD loader which supports AMD, CommonJS and browser globals. The browser global variable name for this library is "javascriptClient".

JavaScript Example
//read the resource in JSON:
var json = JSON.parse(jsonString);

//create an object
var object = new Object(json);

//retreive the json again
var newJson = object.toJSON();

//serialize the json
var newJsonString = JSON.stringify(newJson);
    

Files
name size description
edc-apis-client-javascript-client-js.zip 45.66K

The JavaScript client-side library defines classes that can be (de)serialized to/from JSON. This is useful for accessing the resources that are published by this application, but only those that produce a JSON representation of their resources (content type "application/json").

The library uses ES6 class syntax which has limited support. See MDN and the ES6 Compatibility Table for more details.

The library contains a UMD loader which supports AMD, CommonJS and browser globals. The browser global variable name for this library is "javascriptClient".

JavaScript Example
//read the resource in JSON:
var json = JSON.parse(jsonString);

//create an object
var object = new Object(json);

//retreive the json again
var newJson = object.toJSON();

//serialize the json
var newJsonString = JSON.stringify(newJson);
    

ns0.xsd

Created March 4, 2024

Files
name size description
ns0.xsd 8.30K  

Objective C Client Library

Created March 4, 2024

The Objective C module generates the source code for the Objective C classes and (de)serialization functions that can be used in conjunction with libxml2 to (de)serialize the REST resources as they are represented as XML data.

The generated Objective C source code depends on the XML Reader API and the XML Writer API as well as the base OpenStep foundation classes.

Objective C Example
#import <edc-apis-client.h>
//...

EDC_APIS_CLIENTEDCAccountCreator *requestElement = [[EDC_APIS_CLIENTEDCAccountCreator alloc] init];
NSData *requestData; //data holding the XML for the request.
EDC_APIS_CLIENTEDCAccount *responseElement;
NSData *responseData; //data holding the XML from the response.
NSURL *baseURL = ...; //the base url including the host and subpath.
NSURL *url = [NSURL URLWithString: @"/accounts" relativeToURL: baseURL];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url];
NSURLResponse *response = nil;
NSError *error = NULL;
[request setHTTPMethod: @"POST"];
[request setValue:@"application/xml" forHTTPHeaderField:@"Content-Type"];  

//set up the EDC_APIS_CLIENTEDCAccountCreator...

requestData = [requestElement writeToXML];
[request setHTTPBody: requestData];

//this example uses a synchronous request,
//but you'll probably want to use an asynchronous call
responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
EDC_APIS_CLIENTEDCAccount *responseElement = [EDC_APIS_CLIENTEDCAccount readFromXML: responseData];
[responseElement retain];

//handle the response as needed...
    

Files
name size description
edc-apis-client.h 275.73K

The Objective C module generates the source code for the Objective C classes and (de)serialization functions that can be used in conjunction with libxml2 to (de)serialize the REST resources as they are represented as XML data.

The generated Objective C source code depends on the XML Reader API and the XML Writer API as well as the base OpenStep foundation classes.

Objective C Example
#import <edc-apis-client.h>
//...

EDC_APIS_CLIENTEDCAccountCreator *requestElement = [[EDC_APIS_CLIENTEDCAccountCreator alloc] init];
NSData *requestData; //data holding the XML for the request.
EDC_APIS_CLIENTEDCAccount *responseElement;
NSData *responseData; //data holding the XML from the response.
NSURL *baseURL = ...; //the base url including the host and subpath.
NSURL *url = [NSURL URLWithString: @"/accounts" relativeToURL: baseURL];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url];
NSURLResponse *response = nil;
NSError *error = NULL;
[request setHTTPMethod: @"POST"];
[request setValue:@"application/xml" forHTTPHeaderField:@"Content-Type"];  

//set up the EDC_APIS_CLIENTEDCAccountCreator...

requestData = [requestElement writeToXML];
[request setHTTPBody: requestData];

//this example uses a synchronous request,
//but you'll probably want to use an asynchronous call
responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
EDC_APIS_CLIENTEDCAccount *responseElement = [EDC_APIS_CLIENTEDCAccount readFromXML: responseData];
[responseElement retain];

//handle the response as needed...
    
edc-apis-client.m 2.46M

The Objective C module generates the source code for the Objective C classes and (de)serialization functions that can be used in conjunction with libxml2 to (de)serialize the REST resources as they are represented as XML data.

The generated Objective C source code depends on the XML Reader API and the XML Writer API as well as the base OpenStep foundation classes.

Objective C Example
#import <edc-apis-client.h>
//...

EDC_APIS_CLIENTEDCAccountCreator *requestElement = [[EDC_APIS_CLIENTEDCAccountCreator alloc] init];
NSData *requestData; //data holding the XML for the request.
EDC_APIS_CLIENTEDCAccount *responseElement;
NSData *responseData; //data holding the XML from the response.
NSURL *baseURL = ...; //the base url including the host and subpath.
NSURL *url = [NSURL URLWithString: @"/accounts" relativeToURL: baseURL];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url];
NSURLResponse *response = nil;
NSError *error = NULL;
[request setHTTPMethod: @"POST"];
[request setValue:@"application/xml" forHTTPHeaderField:@"Content-Type"];  

//set up the EDC_APIS_CLIENTEDCAccountCreator...

requestData = [requestElement writeToXML];
[request setHTTPBody: requestData];

//this example uses a synchronous request,
//but you'll probably want to use an asynchronous call
responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
EDC_APIS_CLIENTEDCAccount *responseElement = [EDC_APIS_CLIENTEDCAccount readFromXML: responseData];
[responseElement retain];

//handle the response as needed...
    
enunciate-common.h 12.83K Common header needed for all projects.
enunciate-common.m 42.34K Common implementation code needed for all projects.

ocd.xsd

Created March 4, 2024

Files
name size description
ocd.xsd 8.84K  

PHP JSON Client Library

Created March 4, 2024

The PHP JSON client-side library defines the PHP classes that can be (de)serialized to/from JSON. This is useful for accessing the resources that are published by this application, but only those that produce a JSON representation of their resources (content type "application/json").

This library requires the json_encode function which was included in PHP versions 5.2.0+.

PHP JSON Example
//read the resource in JSON:
$json = ...;

//read the json as an array.
$parsed = json_decode($json, true);

//read the json array as the object
$result = new Object($parsed);

//open a writer for the json
$json = $result->toJson();
    

Files
name size description
edc-apis-client-php-json-client-php.zip 54.75K

The PHP JSON client-side library defines the PHP classes that can be (de)serialized to/from JSON. This is useful for accessing the resources that are published by this application, but only those that produce a JSON representation of their resources (content type "application/json").

This library requires the json_encode function which was included in PHP versions 5.2.0+.

PHP JSON Example
//read the resource in JSON:
$json = ...;

//read the json as an array.
$parsed = json_decode($json, true);

//read the json array as the object
$result = new Object($parsed);

//open a writer for the json
$json = $result->toJson();
    

PHP XML Client Library

Created March 4, 2024

The PHP client-side library defines the PHP classes that can be (de)serialized to/from XML. This is useful for accessing the resources that are published by this application, but only those that produce a XML representation of their resources.

This library leverages the XMLReader and XMLWriter tools that were included in PHP versions 5.1.0+.

PHP XML Example
//read the resource in XML form:
$xml = ...;

$reader = new \XMLReader();

if (!$reader->open($xml)) {
  throw new \Exception('Unable to open ' . $xml);
}
$result = new Object($reader);

//open a writer for the xml
$out = ...;
$writer = new \XMLWriter();
$writer->openUri($out);
$writer->startDocument();
$writer->setIndent(4);
$result->toXml($writer);
$writer->flush();
    

Files
name size description
edc-apis-client-php-xml-client-php.zip 66.45K

The PHP client-side library defines the PHP classes that can be (de)serialized to/from XML. This is useful for accessing the resources that are published by this application, but only those that produce a XML representation of their resources.

This library leverages the XMLReader and XMLWriter tools that were included in PHP versions 5.1.0+.

PHP XML Example
//read the resource in XML form:
$xml = ...;

$reader = new \XMLReader();

if (!$reader->open($xml)) {
  throw new \Exception('Unable to open ' . $xml);
}
$result = new Object($reader);

//open a writer for the xml
$out = ...;
$writer = new \XMLWriter();
$writer->openUri($out);
$writer->startDocument();
$writer->setIndent(4);
$result->toXml($writer);
$writer->flush();
    

Ruby JSON Client Library

Created March 4, 2024

The Ruby JSON client-side library defines the Ruby classes that can be (de)serialized to/from JSON. This is useful for accessing the REST endpoints that are published by this application, but only those that produce a JSON representation of their resources (content type "application/json").

This library leverages the Ruby JSON Implementation, which is required in order to use this library.

Ruby JSON Example
require 'net/https'
require 'uri'
//...

//read a resource from a REST url
url = URI.parse("...")
request = Net::HTTP::Post.new(url.request_uri)
input = Object.new
//set up the Object...
request.body = input.to_json
request['Content-Type'] = "application/json"

http = Net::HTTP.new(url.host, url.port)
//set up additional http stuff...
res = http.start do |ht|
  ht.request(request)
end

result = Object.from_json(JSON.parse(res.body))

//handle the result as needed...
    

Files
name size description
edc-apis-client.rb 718.62K

The Ruby JSON client-side library defines the Ruby classes that can be (de)serialized to/from JSON. This is useful for accessing the REST endpoints that are published by this application, but only those that produce a JSON representation of their resources (content type "application/json").

This library leverages the Ruby JSON Implementation, which is required in order to use this library.

Ruby JSON Example
require 'net/https'
require 'uri'
//...

//read a resource from a REST url
url = URI.parse("...")
request = Net::HTTP::Post.new(url.request_uri)
input = Object.new
//set up the Object...
request.body = input.to_json
request['Content-Type'] = "application/json"

http = Net::HTTP.new(url.host, url.port)
//set up additional http stuff...
res = http.start do |ht|
  ht.request(request)
end

result = Object.from_json(JSON.parse(res.body))

//handle the result as needed...