2012-06-04 1 views
0

Мне нужно создать (с помощью XWiki API REST) ​​BlogPost. Но я не знаю, чтобы использовать REST ... С помощью этой команды:Создать BlogPost XWiki с REST

$ curl -u Admin:admin -X PUT --data-binary "@newpage.xml" -H "Content-Type: application/xml" http://localhost:8080/xwiki/rest/wikis/xwiki/spaces/Main/pages/NewPage 

и с этим XML-файл:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<page xmlns="http://www.xwiki.org">  
     <title>Hello world</title> 
     <syntax>xwiki/2.0</syntax> 
     <content>This is a new page</content> 
</page> 

создать страницу в пространстве Main. Но я хочу BlogPost в пространстве Blog. Что такое разметка, которую я должен использовать? (Я нашел эту команду here)

ответ

0

Право команды использовать это:

curl -u Admin:admin -X POST --data-binary "@blogpost.xml" -H "Content-Type: application/xml" http://localhost:8080/xwiki/rest/wikis/xwiki/spaces/Blog/pages/A+New+Blogpost/objects 

Файл XML должен выглядеть следующим образом:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<object xmlns="http://www.xwiki.org"><className>Blog.BlogPostClass</className> 
    <property name="category"><value>Blog.News</value></property> 
    <property name="content"><value>This is the new blog post. You can use **wiki syntax** in it. 

Don't forget to escape XML entities like &amp; and &lt;!</value></property> 
    <property name="publishDate"><value>2012-06-06 12:00:00.0</value></property> 
    <property name="published"><value>1</value></property> 
    <property name="title"><value>Second blog post</value></property> 
</object> 

несколько вещей, чтобы отметить:

  • Документ должен уже существовать, это не работает для несуществующего документа. Итак, первое, что нужно сделать, это: PUT название и родительский элемент в новый документ, тогда вы можете добавлять к нему объекты.
  • Правильный глагол для создания объектов - POST, а URL-адрес получается путем добавления /objects к URL-адресу REST документа.
  • Фактический URL REST вновь созданного объекта возвращается как перенаправление. Вы можете перехватить перенаправление и обработать URL-адрес по мере необходимости, или вы можете разрешить переадресацию, и вы вернете объект, который был создан с подробным полным синтаксисом.
  • В общем случае при отправке ресурсов используется тот же синтаксис, что и при возврате ресурсов, хотя не все данные необходимы. Например, я получил XML для этого объекта, сначала получив существующий объект blogpost, а затем удалив все, что сервер не должен получать, так как он может вычислить его локально.
  • Одна вещь, которую я заметил (и я считаю ошибкой), заключается в том, что при получении ресурсов объекты XML кодируются дважды (&amp;#39;), а отправленные ресурсы должны иметь объекты, которые кодируются только один раз (&#39;).
+0

Также см http://platform.xwiki.org/xwiki/bin/view/Features/XWikiRESTfulAPI#HCreatinganXWikiObject –

+0

можно использовать CORS? – Lorenzo

0

Как правило, с REST вы ожидаете отправить сообщение PUT на URL-адрес, который вы хотите создать (или обновить). Таким образом, вы бы перейти от:

http://localhost:8080/xwiki/rest/wikis/xwiki/spaces/Main/pages/NewPage

, может быть, это (предполагая, что вы создаете BlogPost в пространстве Blog):

http://localhost:8080/xwiki/rest/wikis/xwiki/spaces/Blog/pages/BlogPost

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

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

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