Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to test Express/node REST API backend with Advanced REST Client or Postman?

Tags:

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.

like image 941
ragulka Avatar asked Jul 27 '12 13:07

ragulka


People also ask

How do I use Advanced REST client for post method?

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.

How will you make an API call from your node application?

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.


1 Answers

Try enclosing the field properties in quotes: {"title":"Awesome post!", "tags": ["blue", "jeans"] }

like image 198
awl Avatar answered Nov 11 '22 17:11

awl