5

I assume there is no official support in the APIs right now since Aura Components are in BETA. The choice of developer tools is a bit narrow (Developer Console and Sublime Lightning) and I want to add Aura support into our free and native IDE CodeFusion (http://www.elastify.eu/apps/CodeFusion).

For Visulaforce and APEX we use ToolingAPI or MetadataAPI to access pages, classes, triggers and static ressources. This works great and boosted our Developer UX and coding performance a lot.

Now I had a look at Dave Caroll's Salesforce CLI here https://github.com/heroku/force This is a great project where you can see how to access Aura related metadata via ToolingAPI. For instance in force.go look at the function GetAuraBundlesList() somewhere near line 440:

func (f *Force) GetAuraBundlesList() (bundles AuraDefinitionBundleResult, err error) {
    aurl := fmt.Sprintf("%s/services/data/%s/tooling/query?q=%s", f.Credentials.InstanceUrl, apiVersion,
        url.QueryEscape("SELECT Id, DeveloperName, NamespacePrefix, ApiVersion, Description FROM AuraDefinitionBundle"))
    body, err := f.httpGet(aurl)
    if err != nil {
        return
    }
    json.Unmarshal(body, &bundles)
    return
}

Even without knowing the Go language, it's very obviously using the ToolingAPI in the REST flavor. And it does so right NOW. So my questions are:

Does anyone know where to find a BETA- or draft-documentation of this new ToolingAPI features or has anyone tried to use them yet?

Especially I would be interested in extending Andrew Fawcett's ToolingAPI.cls https://github.com/afawcett/apex-toolingapi - simply to make all that Aura-Stuff available in APEX for native apps like CodeFusion. We really like it native! Any plans or interest in a collaborated effort to add this? It really doesn't look too hard, so if time allows, I probably could make the first steps even if the only docu would be reverse engineering the existent Go code. Or do you seen any obvious show stoppers?

Any ideas appreciated.

9

Both ToolingAPI and MetadataAPI are both fully functional and supported (Beta also of course). Dev Console uses the tooling api itself and sublime-lightning sits on top of the forceCLI project that uses various APIs. Packaging support is based on the MD API. At least one ISV/Partner (Squidify) has already Lightning Components enabled their own tools. Our own Salesforce Eclipse plugin will soon have LC support too.

Here is the MD API doc for AuraDefinition and AuraDefinitionBundle that should get you started:

https://www.salesforce.com/us/developer/docs/api_meta/index_Left.htm#CSHID=meta_auradefinitionbundle.htm|StartTopic=Content%2Fmeta_auradefinitionbundle.htm|SkinName=webhelp

SObject API is also a useful read:

https://www.salesforce.com/us/developer/docs/api/index_Left.htm#CSHID=sforce_api_objects_auradefinitionbundle.htm|StartTopic=Content%2Fsforce_api_objects_auradefinitionbundle.htm|SkinName=webhelp

LCs are represented by 2 new entities: AuraDefinitionBundle (the set of defs that comprise a component, app, event, etc) and AuraDefinition (and individual part of a bundle: markup (cmp, app, evt, etc), myCompinentController.js, and so on)

  • Thanks @DougChasman for your reply. Yes I've anticipated that. Unfortunately the current public documentation (v32) seems not cover these beta features salesforce.com/us/developer/docs/api_tooling/index.htm - we (elastify) are also partners. Is there a way to get access to the beta documentation? – Uwe Heim Nov 28 '14 at 12:02
  • 1
    Added some doc links to my original answer above – Doug Chasman Nov 28 '14 at 12:22
  • That's perfect Doug, it's exactly what I was looking for! Sure it'll help us to implement Aura into the existing APEX wrapper classes for MetadataAPI and ToolingAPI. – Uwe Heim Nov 28 '14 at 13:34
1

Access via MetadataAPI form APEX

The MetadataService.cls for APEX has been updated a few days ago and now is also supporting AuraComponentBundles. I tested it and for my use cases it works just fine. You can get the code right here:

https://github.com/financialforcedev/apex-mdapi

If you are updating form an older version < v29.0 you might also have a look here

MetadataAPI: Missing MetadataPort.checkStatus(String[] asyncProcessId) in MetadataService.cls v32.0

1

We have added Tooling API doc for:

AuraDefinition (https://developer.salesforce.com/docs/atlas.en-us.api_tooling.meta/api_tooling/sforce_api_objects_auradefinition.htm)

AuraDefinitionBundle (https://developer.salesforce.com/docs/atlas.en-us.api_tooling.meta/api_tooling/sforce_api_objects_auradefinitionbundle.htm)

Apologies that it took a while for the doc to appear.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.