2016-06-10 2 views
2

У меня есть расширение ресурса, где я хочу вернуть json в ответ на запрос GET. У меня JSON как текст, а не как дерево объектов. Я думал, что могу просто установить output-type на карте $context, а затем вернуть текст в узел документа, но, похоже, мой тип содержимого изменяется на text/plain в заголовках ответов.вернуть текст json из расширения ресурса

xquery version "1.0-ml"; 

module namespace resource = "http://marklogic.com/rest-api/resource/json"; 

declare function get(
     $context as map:map, 
     $params as map:map 
) as document-node()* 
{ 

    let $output-type := map:put($context, "output-type", "application/json") 
    return 
     document { 
      "{ ""name"": ""tj"" }" 
     } 
}; 

Если я возвращает объект JSON дерево в документе узла, т.е. оберточной текст в xdmp:unquote, то он возвращает в порядке. НО, что я хочу сделать, это вернуть прямой JSON без необходимости его синтаксического анализа. Я пытался избавиться от необходимости преобразовывать XML в JSON в мои ответы, ожидающие JSON. Но необходимость в xdmp: unparse или json: transform-to-json приводит к тому же лишнему времени, которое я пытаюсь избежать.

Я понимаю, что означает атрибут output-type?

ответ

3

Правильный ключ для расширения ресурса - это выходные типы, потому что ваше расширение может возвращать более одного документа.

http://docs.marklogic.com/guide/rest-dev/extensions#id_84661

Ключ для преобразования выводится тип.

Надеюсь, что это поможет,

+0

Спасибо .. Я смотрел документацию и считал, что это было одинаково для всех разных случаев. –

 Смежные вопросы

  • Нет связанных вопросов^_^