2015-12-21 21 views
1

我在玩API /端點配置。我正在使用下面的調用PUT我的配置基本API(端口8000):如何在專用端點上部署配置

curl -v -X PUT --digest --user muyser:**** -H "Content-type: application/json" -d "@config.json" 'http://example.com:8000/v1/config/query/myfirstconfig' 

它工作正常。現在我想將這個配置應用到另一個端點(端口:9037)。這是我創建的一個終點。它失敗:

curl -v -X PUT --digest --user muyser:**** -H "Content-type: application/json" -d "@config.json" 'http://example.com:9037/v1/config/query/myfirstconfig' 

錯誤:

{ 「的StatusCode」:500, 「狀態」: 「內部服務器錯誤」, 「messageCode」: 「內部錯誤」, 「消息」: 「xDMP-UPDATEFUNCTIONFROMQUERY:xdmp:申請(函數()作爲 項()*) - 無法從查詢中應用更新的功能,請參閱 MarkLogic服務器錯誤日誌中瞭解更多細節。」}}

你做 有什麼想法?我想,在配置enpdoint時,我忘記了一些選項/功能。

回答

1

在8版本開始,如果你創建一個REST API端點/擴展不更新,你必須標註功能:

declare %rapi:transaction-mode("update") function my:endpoint(
    $context as map:map, 
    $params as map:map, 
    $input as document-node()* 
) as document-node()? 
{ 
    ... 
}; 

我認爲只讀現在出於安全原因,默認。

+0

謝謝wst :) –

+2

V8的改變只是爲了POST; PUT和DELETE默認仍爲更新:http://docs.marklogic.com/guide/rest-dev/extensions#id_52937 – joemfb

+1

另請參閱發行說明:http://docs.marklogic.com/guide/relnotes/把chap4#id_43559 – joemfb

0

我忘了給這個端點添加一個「模塊」數據庫。它現在有效。

相關問題