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
BedrockMission!

Learn more

View all

Sign in to view all badges

SOLVED

I18n json as API

sagarneelb
Level 1
Level 1

Hi,

I am trying to build a API on top of i18n. So I can expose it for other channels to consume it. Essentially, I don't want to expose the full json dict. 

I want something like this, <domain>/<country>/<lang>/<pagecode>/<feature>.json and expecting it to give me the filtered json for the feature. I could do it for .html. which is giving me the json (as string) in the Html output. But when I use .json it is not. I have a json rendition (json.jsp). It is Getting handled by default servlet and giving me error. Please help. I checked .json extension is there in the sling get servlet. 

 

1 Accepted Solution
ChitraMadan
Correct answer by
Community Advisor
Community Advisor

Hi @sagarneelb ,

 

You can have a custom servlet based on resource type or selector e.g.

You can call<domain>/<country>/<lang>/<pagecode>/<feature>.jsondict

 

@Component(metatype = false)
@Service(Servlet.class)
@Properties({
@Property(name = "sling.servlet.selectors", value = { "jsondict" }) })
public class DefaultDictionarySelector extends SlingSafeMethodsServlet {
////// Filter logic based on feature
///// Write json
}

 

View solution in original post

4 Replies
aemmarc
Employee
Employee

If the JSON request is being handled by org.apache.sling.servlets.get.DefaultGetServlet -- then why not set enable.json to false?

Shashi_Mulugu
Community Advisor
Community Advisor

@sagarneelb can you please create a resource type servlet with extension JSOn and try please?

ChitraMadan
Correct answer by
Community Advisor
Community Advisor

Hi @sagarneelb ,

 

You can have a custom servlet based on resource type or selector e.g.

You can call<domain>/<country>/<lang>/<pagecode>/<feature>.jsondict

 

@Component(metatype = false)
@Service(Servlet.class)
@Properties({
@Property(name = "sling.servlet.selectors", value = { "jsondict" }) })
public class DefaultDictionarySelector extends SlingSafeMethodsServlet {
////// Filter logic based on feature
///// Write json
}

 

View solution in original post