Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
Bedrock Mission!

Learn more

View all

Sign in to view all badges

SOLVED

Adobe Campaign Classic - How to identify all inbound api services

Ken_Qrious
Level 3
Level 3

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
CedricRey
Correct answer by
Level 5
Level 5

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

0 Replies
Milan_Vucetic
Community Advisor
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

CedricRey
Correct answer by
Level 5
Level 5

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

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