shuaijinchao commented on a change in pull request #5923:
URL: https://github.com/apache/apisix/pull/5923#discussion_r776220539



##########
File path: apisix/plugins/openwhisk.lua
##########
@@ -104,8 +108,31 @@ function _M.access(conf, ctx)
         return 503
     end
 
+    -- parse OpenWhisk JSON response
+    -- OpenWhisk supports two types of responses, the user can return only
+    -- the response body, or set the status code and header.
+    local result, err = core.json.decode(res.body)
+
+    if not result or err then
+        core.log.error("failed to parse openwhisk response data: ", err)
+        return 503
+    end
+
     -- setting response headers
-    core.response.set_header(res.headers)
+    if result.headers ~= nil then
+        core.response.set_header(result.headers)
+    end
+
+    if result.statusCode ~= nil and result.body ~= nil then
+        -- return status code and body
+        return result.statusCode, result.body
+    elseif result.statusCode ~= nil then
+        -- return only status code
+        return result.statusCode
+    elseif result.body ~= nil then
+        -- return only body
+        return 200, result.body
+    end
 
     return res.status, res.body

Review comment:
       this should be better.
   ```lua
   local code = result.statusCode or res.status
   local body = result.body or res.body
   return code, body
   ```




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to