2016-08-12 6 views
0

CouchDBを使用して、いくつかのサードパーティのサービスと統合しようとしています。私はデータベースへの応答を記録できるように、更新ハンドラを使用しています。couchdb update handler with GET

残念ながら、返信URLを指定することはできますが、methodを指定することはできず、方法は常にGETです。

{ 
    error: "method_not_allowed", 
    reason: "Update functions do not allow GET" 
} 

誰かが回避策を認識していますか?私が使用できる別のハンドラはありますか?他の誰も文書を書くことを許可していないようです。

私は、プロキシを作成しないように期待していた、と私はホスティングサービス(smileupps)ありませんので、カスタマイズを使用しています。この

https://lbl.io/post/url-shortening-with-couchdb

を読みました。

答えて

0

ブラウザを通過していると仮定すると、javascriptとhtmlを使用することができます。これは、(例えば)が非ジャバスクリプト/ htmlのサポートクライアント

セットアップを使用することをあらゆるケースを処理しませんあなたのrewrites

{ 
    "from": "/endpoint", 
    "to": "proxy.html", 
    "method": "GET", 
    "query": {} 
}, 
{ 
    "from": "/endpoint", 
    "to": "_update/endpoint", 
    "method": "*", 
    "query": {} 
} 

proxy.html

<html> 
<body> 
<form method='POST'></form> 
<script> 
var form = document.getElementsByTagName("form")[0]; 
form.setAttribute("action", window.location); 
form.submit(); 
</script> 
</body> 
</html> 

何が起こることは通知がendpointに送信されていますプロキシに送信されます。プロキシは同じURLを使用してフォームを生成し、POSTを返します。ポストバージョンは、更新ハンドラに書き換えられます。

+0

この解決策は、私に汚れを感じさせます。 –