- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
fsxa-api: Get reference name via fetchElement
Hello,
we are using the api fsxa-api and trying to get some more fields. In every section it is possible to add a reference name, but in the api this field is not printed out. Is it possible to get this field?
https://www.npmjs.com/package/fsxa-api#fetchelement
In the documentation there is parameter called:
But I didn't find any documentation about this.
Thanks in advance
Best,
Andrรฉ
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Sure. I did: https://github.com/e-Spirit/javascript-content-api-library/issues/194
Can you tell me, when this can be implemented?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello Andrรฉ,
i think you mean the names you can choose when you select "rename" on a section.
Those are pushed into CaaS but currenty not mapped by the fsxa-api. You could retrieve them with a seperate api call, by setting "keys" in additional parameters
keys : {"page.children.children.displayname": 1, "page.children.children.name": 1 }
(untested)
This works, since the keys parameter disables the mapping of the fsxa-api.
If you need the fsxa-api to pass those values, you would need to create a feature request with Crownpeak
Best,
Lukas
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello Andrรฉ,
you can also create an issue on github if you'd like. Or even a pull request if you feel up to it ๐
If you're happy with Lukas' Solution, please click on "Accept as Solution" so others know that this a valid workaround for this issue.
Regards,
Emre
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi neo,
Thanks for your answer. You are right, I meant these names.
const page: Page = await fsxaApi.fetchElement({
id: routeData.caasDocumentId,
locale: FS_LOCALE,
fetchOptions: {
cache: 'force-cache',
next: {
tags: ['allRouteData'],
},
},
});
const referenceNames: Page = await fsxaApi.fetchElement({
id: routeData.caasDocumentId,
locale: FS_LOCALE,
fetchOptions: {
cache: 'force-cache',
next: {
tags: ['allRouteData'],
},
},
additionalParams: {
keys: { 'page.children.children.displayname': 1, 'page.children.children.name': 1 },
},
});
I have created 2 api calls. the first ist getting alle the page data, the next one only the reference names. This works so far, but the objects are looking totally different.
How can I merge them together? Just with a loop? or is there an easier way?
How do you know these keys? Is there a documentation about it?
Thanks in advance
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Update:
I have created this here. But the loop doesn't feel good
referenceNames?.page.children[0].children.forEach((referenceName, index) => {
const child = page.children[0].children[index];
if (child && 'id' in child && child.id === referenceName?.identifier) {
page.children[0].children[index] = {
...page.children[0].children[index],
...referenceName,
};
}
});
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I understand that this "doesn't feel good" thing. We have only fractional insights in your code and challenges, so I'm unsure if we can help you further with your specific problem. This leads me to the question: Why do want to include the reference name in the first place? If there is a sane reason for this we may include it in the API. At the moment we don't see any use case for this, but we may miss something here.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
@Peter_Jodeleit We need the reference name as ids for anchor tags to scroll down to specific sections. We could also take the ids that are provided, but there are not readable by the user and on the editor in FirstSpirit you also choose this reference name when linking to a section. So if you could provide it via the default api call it would be nice.
or the additionalParams will include the keys to the whole request.
So for now, when I add this here:
additionalParams: {
keys: { 'page.children.children.displayname': 1, 'page.children.children.name': 1 },
},
the rest of the data is gone, only these keys where shown by the request.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you for the insights. We will discuss this in the team. Do you mind to create a github issue for this?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Sure. I did: https://github.com/e-Spirit/javascript-content-api-library/issues/194
Can you tell me, when this can be implemented?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The attribute is available since release 10.19.0

