2017-11-20 18 views
1

ヘッダーとHTTPステータスコードを制御できるようにするために、応答オブジェクトを返すOpenWhiskアクションがあります。私は、コマンドラインからパッケージ内のアクションを展開OpenWhiskはデータだけでなく応答オブジェクト全体を返します

return { 
    statusCode: 200, 
    headers: { 'Content-Type': 'application/json' }, 
    body: { x: 1 } 
    }; 

wsk action update myproj/myaction --kind nodejs:6 myaction.zip --web true 

としてIBM Cloudの機能のAPIとして公開:

wsk api create /myproj /myaction get myproj/myaction 
私の行動は、このようなものを返します

しかし、curlでAPI呼び出しを呼び出すと、データだけでなく応答オブジェクト全体が取得されます。

curl '.../myproj/myaction' 

{ 
    "statusCode": 200, 
    "headers": { 
    "Content-Type": "application/json" 
    }, 
    "body": { x: 1 } 
} 

私はちょうど{ x: 1 }を得ることを期待していました。

これを修正するには何が必要ですか?

+0

は「WSK API」デフォルトのタイプは以下の回答で解決するために、2つのオプションSER「--response型JSON」を渡すようなJSONであります – csantanapr

答えて

2

デフォルトのAPIゲートウェイサービスの動作では、完全なHTTP応答パラメータではなく、アクションから本文データが返されます。

この問題を解決するには、return文を次のように変更します。返されたアクションパラメータを使用して、完全なHTTP応答を制御する

return { 
    x: 1 
}; 

は、ウェブアクションに--response-type httpフラグ設定を必要とします。何のHTTP拡張が渡されない

$ wsk api create /myproj /myaction get myproj/myaction --response-type http 
関連する問題