Expand my Community achievements bar.

SOLVED

Adobe Campaign Classic - How to identify all inbound api services

Avatar

Level 4

We are trying to identify all inbound api services exposed by our adobe campaign classic.  At present we use two main api interfaces.

  1. Data oriented api, where the interface is defined in a data schema and accessed via https://<campaign instance>/nl/jsp/soaprouter.jsp
  2. Rest api, where interface is defined in a jssp

Is there an easy way to get a list of available api's for external users?

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

Hi,

I think you have the 2 main ways to expose APIs from Adobe Campaign.

One other way to expose content from ACC is to publish webForm/webApp/report, but it seems difficult to me to use it as API.

Here a code to list all the methods of your instance schemas (but it'll always go through the soaprouter.jsp url). You can execute it in a javascript into a workflow.

var query = xtk.queryDef.create("<queryDef schema='xtk:schema' fullLoad='true' operation='select'><where><condition expr=\"data NOT LIKE '%' + 'extendedSchema=&quot;' + '%'\"/></where><orderBy> <node expr='[@namespace]||[@name]'/></orderBy></queryDef>");
var schemas = query.ExecuteQuery();
for each ( var schema in schemas.schema)
{
  var schemaName = schema.@namespace + ":" + schema.@name;  
  var methodCollection =  schema.methods.method;
  for each(method in methodCollection)
    logInfo( schemaName + ":" + method.@name + ' (' + (method.@static.toString() == 'true' ? 'static' : 'non static' ) + ') - ' + method.help );
}

You can remove informations from the "logInfo" if not needed. It will output the result to the workflow logs.

 

Cédric

View solution in original post

3 Replies

Avatar

Community Advisor

Hi @Ken_Qrious  you can download WSDL file for each schema in AC and import it in SoapUI and you will see the all methods within chosed schema.

Milan_Vucetic_0-1622445559403.png

You can start from schema xtk:session which has a lot of different APIs.

Regards,

Milan

Avatar

Correct answer by
Community Advisor

Hi,

I think you have the 2 main ways to expose APIs from Adobe Campaign.

One other way to expose content from ACC is to publish webForm/webApp/report, but it seems difficult to me to use it as API.

Here a code to list all the methods of your instance schemas (but it'll always go through the soaprouter.jsp url). You can execute it in a javascript into a workflow.

var query = xtk.queryDef.create("<queryDef schema='xtk:schema' fullLoad='true' operation='select'><where><condition expr=\"data NOT LIKE '%' + 'extendedSchema=&quot;' + '%'\"/></where><orderBy> <node expr='[@namespace]||[@name]'/></orderBy></queryDef>");
var schemas = query.ExecuteQuery();
for each ( var schema in schemas.schema)
{
  var schemaName = schema.@namespace + ":" + schema.@name;  
  var methodCollection =  schema.methods.method;
  for each(method in methodCollection)
    logInfo( schemaName + ":" + method.@name + ' (' + (method.@static.toString() == 'true' ? 'static' : 'non static' ) + ') - ' + method.help );
}

You can remove informations from the "logInfo" if not needed. It will output the result to the workflow logs.

 

Cédric

Avatar

Level 4
Thanks Cedric, this looks useful. I was hoping for an inbuild adobe function but this will work. I'll try it out.