Aem 如何使CQ5返回JSON格式的响应?

Aem 如何使CQ5返回JSON格式的响应?,aem,Aem,以下curl命令在CRX中创建一个节点: curl -u admin:admin \ -F”jcr:primaryType=nt:unstructured” \ -F”sling:resourceType=foo/bar” ... http://localhost:4502 但是,CQ5以HTML格式返回响应: <html> <head> <title>Content modified ...</title> <

以下
curl
命令在CRX中创建一个节点:

curl -u admin:admin \ 
     -F”jcr:primaryType=nt:unstructured” \
     -F”sling:resourceType=foo/bar” ... http://localhost:4502
但是,CQ5以HTML格式返回响应:

<html>
<head>
    <title>Content modified ...</title>
</head>
    <body>
    <h1>Content modified ...</h1>
    ...
    <p><a href="">Go Back</a></p>
    <p><a href="...">Modified Resource</a></p>
    <p><a href="/etc/tags/...-keywords">Parent of Modified Resource</a></p>
    </body>
</html>

内容修改。。。
内容修改。。。
...

有没有一种方法可以精心设计请求,使响应采用JSON格式?

,CQ基于此,根据请求的Accept标头选择输出格式:

$ curl -u admin:admin -s -H"Accept:application/json" -Ftest=ok http://localhost:8080/tmp | jq .
{
  "referer": "",
  "changes": [
    {
      "argument": "/tmp",
      "type": "created"
    },
    {
      "argument": "/tmp/test",
      "type": "modified"
    }
  ],
  "path": "/tmp",
  "location": "/tmp",
  "parentLocation": "/",
  "isCreate": true,
  "status.code": 201,
  "status.message": "Created",
  "title": "Content created /tmp"
}
在CQ中也应该如此

根据Sling,您还可以使用http equiv accept请求参数而不是accept头。

CQ基于该参数,根据请求的accept头选择输出格式:

$ curl -u admin:admin -s -H"Accept:application/json" -Ftest=ok http://localhost:8080/tmp | jq .
{
  "referer": "",
  "changes": [
    {
      "argument": "/tmp",
      "type": "created"
    },
    {
      "argument": "/tmp/test",
      "type": "modified"
    }
  ],
  "path": "/tmp",
  "location": "/tmp",
  "parentLocation": "/",
  "isCreate": true,
  "status.code": 201,
  "status.message": "Created",
  "title": "Content created /tmp"
}
在CQ中也应该如此

根据Sling,您还可以使用http equiv accept请求参数而不是accept头。

CQ基于该参数,根据请求的accept头选择输出格式:

$ curl -u admin:admin -s -H"Accept:application/json" -Ftest=ok http://localhost:8080/tmp | jq .
{
  "referer": "",
  "changes": [
    {
      "argument": "/tmp",
      "type": "created"
    },
    {
      "argument": "/tmp/test",
      "type": "modified"
    }
  ],
  "path": "/tmp",
  "location": "/tmp",
  "parentLocation": "/",
  "isCreate": true,
  "status.code": 201,
  "status.message": "Created",
  "title": "Content created /tmp"
}
在CQ中也应该如此

根据Sling,您还可以使用http equiv accept请求参数而不是accept头。

CQ基于该参数,根据请求的accept头选择输出格式:

$ curl -u admin:admin -s -H"Accept:application/json" -Ftest=ok http://localhost:8080/tmp | jq .
{
  "referer": "",
  "changes": [
    {
      "argument": "/tmp",
      "type": "created"
    },
    {
      "argument": "/tmp/test",
      "type": "modified"
    }
  ],
  "path": "/tmp",
  "location": "/tmp",
  "parentLocation": "/",
  "isCreate": true,
  "status.code": 201,
  "status.message": "Created",
  "title": "Content created /tmp"
}
在CQ中也应该如此


根据Sling的说法,您还可以使用一个http equiv accept请求参数而不是accept头。

我不确定是否有,但似乎上面页面唯一真正有用的部分是状态代码(
201
),如果您不在浏览器中查看,错误页面是否提供了JSON中所需的更有用的内容?@anotherdave为了简化这个问题,我已经从上面的输出中排除了一些内容,但回答中包含了一个包含一些潜在有用信息的
部分。我不确定是否有,但似乎上面页面唯一真正有用的部分是状态代码(在本例中为201),如果您不在浏览器中查看,那么错误页面是否提供了JSON中所需的更有用的内容?@另外Dave为了简化这个问题,我从上面的输出中排除了一些内容,但是响应中包含了一个包含一些潜在有用信息的
部分。我不确定是否有,但似乎上面页面唯一真正有用的部分是状态代码(
201
),如果您不在浏览器中查看,错误页面是否提供了JSON中所需的更有用的内容?@anotherdave为了简化这个问题,我已经从上面的输出中排除了一些内容,但回答中包含了一个包含一些潜在有用信息的
部分。我不确定是否有,但似乎上面页面唯一真正有用的部分是状态代码(在本例中为201),如果您不在浏览器中查看,那么错误页面是否提供了JSON中所需的更有用的内容?@另外Dave为了简化这个问题,我从上面的输出中排除了一些内容,但是响应包含一个
部分,其中包含一些潜在的有用信息。