I need to test my REST API backend that accepts JSON with the Advanced REST Client or Postman for Chrome.
But I am running into issues: I can only send the request using the built-in form and using Content-Type: application/x-www-form-urlencoded
But this will not work since I have embedded documennts, for example, I need to POST this:
{title:"Awesome post!", tags: ["blue", "jeans"] }
This is not possible with the built-in forms of either Chrome extension.
When I select Raw Body and insert the content there, my backend sees the req.body as being an empty object. When I also set the header "Content-Type: application/json", I get the following error in my backend:
SyntaxError: Unexpected token n
at Object.parse (native)
at IncomingMessage.exports.parse.application/json (/Library/WebServer/Documents/slipfeed/node_modules/express/node_modules/connect/lib/middleware/bodyParser.js:135:16)
at IncomingMessage.EventEmitter.emit (events.js:85:17)
at IncomingMessage._emitEnd (http.js:366:10)
at HTTPParser.parserOnMessageComplete [as onMessageComplete] (http.js:149:23)
at Socket.socket.ondata (http.js:1682:22)
at TCP.onread (net.js:404:27)
Note: I am using bodyParser() and methodOverride() in my app's configuration. Disableing them did not help.
What settings should I use so that I could just enter the JSON to the Raw body field and the request would work?
To clarify the answer: I had to set both Content-Type: application/json (in request header) and use well-formed json where property names are also inside double quotes to get it working.
Step 1: Go to the 'Chrome Web Store' then search for 'Advanced search Client' and click on 'Advanced Rest Client'. Step 2: Click on 'Add to crome' button'. Step 3: Click on the 'Add extension' button to add Advanced Rest Client on Google Chrome Extension.
The simplest way to call an API from NodeJS server is using the Axios library. Project Setup: Create a NodeJS project and initialize it using the following command. Module Installation: Install the required modules i.e. ExpressJS and Axios using the following command.
Try enclosing the field properties in quotes: {"title":"Awesome post!", "tags": ["blue", "jeans"] }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With