2012-07-27 11 views
21

Necesito probar el back-end de la API REST que acepta JSON con Advanced REST Client o Postman for Chrome.¿Cómo probar el backend de la API REST de Express/node con Advanced REST Client o Postman?

Pero estoy funcionando en problemas: Sólo puedo enviar la solicitud utilizando el incorporado en la forma y el uso de Content-Type: application/x-www-form-urlencoded

Pero esto no funcionará ya que tengo documennts incrustados, por ejemplo, que deben desplazar a este:

{title:"Awesome post!", tags: ["blue", "jeans"] } 

esto no es posible con las formas integradas de cualquiera extensión de Chrome.

Cuando selecciono Raw Body e inserto el contenido allí, mi backend ve el req.body como un objeto vacío. Cuando también establecer el encabezado "Content-Type: application/json", me sale el siguiente error en mi 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) 

Nota: Estoy usando bodyParser() y methodOverride() en la configuración de mi aplicación. Deshabilitarlos no ayudó.

¿Qué configuraciones debo usar para poder ingresar el JSON al campo de cuerpo sin procesar y la solicitud podría funcionar?

Para aclarar la respuesta: tuve que establecer tanto Content-Type: application/json (en el encabezado de la solicitud) y usar json bien formado donde los nombres de las propiedades también están dentro de comillas dobles para que funcione.

Respuesta

27

Trate encerrando las propiedades de campo entre comillas: { "title": "post impresionante!", "Etiquetas": [ "azul", "jeans"]}

+1

lo intentara, no consigo un error , pero el req.body está vacío – ragulka

+1

Actuall, esto parece hacer el truco. Quité el Content-Type: application/json de los encabezados. Funciona ahora, brillante :) – ragulka

+0

@ragulka: ¿Puedes decirme cómo lo hiciste? He agregado el encabezado, pero todavía me da error. Además, cuando envío como "application/x-www-form-urlencoded", se están configurando dos encabezados de tipo de contenido. – Razort4x